nginx https 单机设置自签名证书

nginx配置好后访问会提示不安全

 

这时候就需要配置ssl证书,一般都是购买或者申请的,如果是内网可以用自签名证书

 

前置条件要安装openssl,centos7.9应该默认安装

可以通过 以下指令查看版本

openssl version

首先安装nginx,创建目录,等会证书文件就放在这

mkdir /etc/nginx/ca

 

 

这里稍微说明一下ssl证书流程,除了一般的客户端和服务端还有一个ca机构,主要负责颁发证书和验证证书。当然我们离线自签名证书,这个ca也就在服务端了。

key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

主要就是这三个文件,我们依次来生成

我们进入到之前的文件夹里执行

 openssl genrsa -des3 -out server.key 1024

这是生成key也就是私钥,用来负责加解密,这里要输入一个密码后面要用到

 

接下来生成csr,也就是请求文件

 openssl req -new -key server.key -out server.csr 

正规流程是将请求文件给ca机构来签名,我们自签名直接生成就好

接下来要需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email,注意Common Name要和你域名一致

 

下一步就是生成证书

 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 

最后为了方便使用,去掉私钥的密码

openssl rsa -in server.pass.key -out server.key

 

在/etc/nginx/nginx.conf加上以下内容

ssl_certificate /etc/nginx/ca/server.crt;
        ssl_certificate_key /etc/nginx/ca/server.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:20m;
        ssl_session_timeout 180m;

 

 

 

这时候访问https

 

 发现还是提示,这是因为证书没导入客户端。

下载crt文件导入浏览器和电脑

 

*导入成功后刷新网站

 

 

 edge可以了但是chrome貌似还不行,估计要自建ca来了,之后研究(可能要域名而不是ip)

 

posted @   Aninock  阅读(1354)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示
主题色彩
主题色彩
主题色彩
主题色彩
主题色彩
主题色彩
主题色彩