Nginx使⽤KEY和CRT格式的证书。
将服务器证书、中级证书和根证书打开,依次将其代码复制到⽂本⽂件中(包 括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”),并保存成 domain.com.crt。 如下:
-----BEGIN CERTIFICATE-----
服务器证书编码
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
中级证书编码
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
根证书编码
-----END CERTIFICATE-----
将服务器证书⽂件 domain.com.key 和 domain.com.crt,配置在 Nginx 中。
如果是单向 SSL,⽤⽂本编辑器打开 Nginx 根⽬录下 conf/nginx.conf ⽂件, 更新以下内容:
server {
listen 443;
server_name 127.0.0.1;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate domain.com.crt; ssl_certificate_key
domain.com.key;
}
由于版本问题,配置⽂件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使⽤ listen 443 ssl 代替 listen 443 和 ssl on。
其中:
启⽤ SSL 功能:ssl on
禁⽤ SSLv2、SSLv3 协议:ssl_protocols TLSv1 TLSv1.1 TLSv1.2 公钥⽂件:ssl_certificate domain.com.crt 路径 私钥⽂件:ssl_certificate_key domain.com.key 路径
上述设置完成过后,重新启动 Nginx。
如果是双向 SSL,⽤⽂本编辑器打开 Nginx 根⽬录下 conf/nginx.conf ⽂件, 更新以下内容:
server {
listen 443;
server_name 127.0.0.1;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate domain.com.crt; ssl_certificate_key domain.com.key; ssl_client_certificate ca.crt; ssl_verify_client on; ssl_verify_depth 2;
}
其中:
启⽤ SSL 功能:ssl on
禁⽤ SSLv2、SSLv3 协议:ssl_protocols TLSv1 TLSv1.1 TLSv1.2 公钥⽂件:ssl_certificate domain.com.crt 路径
私钥⽂件:ssl_certificate_key domain.com.key 路径 证书链⽂件:ssl_client_certificate ca.crt 路径
启⽤双向 SSL:ssl_verify_client on
证书链深度:ssl_verify_depth 2 如果客户端使⽤ CFCA 证书,则该项必须为 2 上述设置完成 过后,重新启动 Nginx。
可选: 设置 HTTP 请求⾃动跳转 HTTPS。
在需要跳转的 HTTP 站点下添加以下 rewrite 语句,实现 HTTP 访问⾃动跳转到 HTTPS ⻚⾯。
server { listen 80; server_name localhost; #将 localhost 修改为您证书绑定的域名,例 如: www.example.com。
rewrite ^(.*)$ https://$host$1 permanent; rewrite 重定向到 https。
location / {
index index.html index.htm; }
}
#将所有 http 请求通过。