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

 

 3. 重新启动Nginx

posted @ 2022-04-19 10:13  TonyZhang24  阅读(205)  评论(0编辑  收藏  举报