Nginx支持HTTPS - 使用OpenSSL制作自签的证书
准备
环境:ubuntu 18.04
openssl : version 1.1.1 11 Sep 2018
制作证书
1. 制作根证书(CA)
1.1 制作私钥
genrsa -des3 -out ca.key 2048
注: 此处要求输入密码来生成私钥。如需要删除密码可运行下面命令:
rsa -in ca.key -out ca_decrypted.key
1.2 制作公钥
req -new -x509 -days 3650 -key ca.key -out ca.crt
再次要求输入密码,需要和私钥的一致
输入密码后,完成下面信息的填入(可输入Enter略过)
到此,根证书的私钥和公钥创建完成。
2. 制作服务端证书并用CA签名认证
2.1 制作服务端证书私钥 (没有密码)
genrsa -des3 -out server.pem 1024
去除服务端私钥密码,否则启动Nginx时会出现读取私钥密码的报错
rsa -in server.pem -out server.key
2.2 制作服务端公钥
2.2.1 生成签名请求
req -new -key server.pem -out server.csr
2.2.2 用CA进行签名 (必须在新的terminal中输入下面命令)
x509 -req -days
3650
-in server.csr -signkey server.key -out server.crt
Nginx配置
1. 将 server.key 和 server.crt 拷贝到Nginx 根目录
2. 修改 Nginx.conf 配置,指定 certification 文件
server { ... ssl on;
ssl_certificate /etc/nginx/server.crt; ssl_certificate_key /etc/nginx/server.key; ssl_session_timeout 5m; ... }# server end