Nginx支持HTTPS – 使用OpenSSL制作自签的证书

By | 2022年6月23日
目录
[隐藏]

准备

环境: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

发表评论

您的电子邮箱地址不会被公开。