Nginx 自签名证书

创建证书秘钥

1
openssl genrsa -des3 -out server.key 2048

按要求两次输入相同的密码,以后使用该秘钥文件-server.key 都会要求输入密码。
如果想免除输入密码的步骤,可以使用以下命令移除秘钥文件的密码(考虑安全因数,建议不要这样处理)

1
openssl rsa -in server.key -out server.key_nopass

创建证书申请文件

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

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

依次选择并输入信息,建议 Common Name 输入服务器 hostname,比如 IP

创建CA证书

1
openssl req -new -x509 -key server.key -out server_ca.crt -days 3650

1
openssl req -new -x509 -key server.key_nopass -out server_ca.crt -days 3650

创建证书

创建自当前日期起有效期为期十年的服务器证书 server.crt

1
openssl x509 -req -days 3650 -in server.csr -CA server_ca.crt -CAkey server.key -CAcreateserial -out server.crt

1
openssl x509 -req -days 3650 -in server.csr -CA server_ca.crt -CAkey server.key_nopass -CAcreateserial -out server.crt

Nginx 部署

打开 Nginx 网站配置文件,配置 ssl_certificate 和 ssl_certificate_key

1
2
3
4
5
6
7
8
9
10
11
12
server {

...
listen 443;
ssl on;
#配置证书位置
ssl_certificate /opt/web.ser.cert/server.crt;
#配置秘钥位置
ssl_certificate_key /www/web.ser.cert/server.key;

...
}