nginx 使用 SSL证书配置 HTTPS

nginx 使用 SSL证书配置 HTTPS

生成 D-H 密钥文件

这一步有可能会消耗很长时间,直到出现第二个 * 才会结束:

sudo openssl dhparam 2048 -out /etc/nginx/dhparam.pem

添加 nginx 配置

SSL 通用配置

检查 nginx 版本:

nginx -v

nginx version: nginx/1.16.1

检查 OpenSSL 版本:

openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017

创建 SSL 通用配置文件:

sudo vim /etc/nginx/conf/ssl.intermediate.conf

可选择插入适合现代浏览器的配置:

或者兼容性更好(会降低安全性)的配置:

保存退出。

主机独立配置

/etc/nginx/conf.d/ 目录下创建具体主机配置文件:

插入配置:

Tips:

  • ssl_certificate 填写证书的 “.cer / .crt / .der / .pem” 文件路径。

  • ssl_certificate_key 填写证书私钥的 “.key / .pem” 文件路径。

  • ssl_trusted_certificate 填写 CA 证书路径,如果没有则去掉 “OCSP stapling” 相关配置项。

强制重启 nginx:

FirewallD 配置

查看 FirewallD 当前默认区域永久配置:

public target: default icmp-block-inversion: no interfaces: sources: services: http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

可见 services 中没有启用 https 服务,ports 中没有添加 443/tcp 端口。

永久启用 https 服务(443/tcp):

查看下次重启(防火墙重新加载、服务器重启或者系统重启)之后永久生效的服务:

http https ssh

重载防火墙规则:

TIps:

  • 阿里云 ECS 需要在控制台的安全组策略中添加入方向的 https 443/tcp 端口。

  • 阿里云轻量应用服务器需要在控制台的防火墙中添加 https 443/tcp 端口。

SSL 安全检测

检测地址:https://www.ssllabs.com/ssltest/

输入域名,正常情况下检测结果应为 A+

参考文献

Last updated

Was this helpful?