如何在 Nginx 服务器上正确安装、配置和部署 SSL 证书以实现安全的 HTTPS 连接?
在 Nginx 服务器上安装、配置并部署 SSL 证书以实现安全的 HTTPS 连接需要按照以下步骤进行:
-
获取 SSL 证书:
- 自己生成:如果你有证书颁发机构 (CA) 的权限,可以使用 OpenSSL 工具生成自签名证书。
- 购买或免费证书:从知名的 CA 或 Let’s Encrypt 网站申请证书。Let’s Encrypt 提供的是免费的 SSL/TLS 证书。
-
下载并备份证书文件:
- 保存私钥(
server.key
)和公钥 CSR(server.csr
),或 CA 发送给你的 .pem 和 .cer 格式的证书文件。
- 保存私钥(
-
安装证书到 Nginx:
- 将公钥 CSR 发送给 CA 或将收到的.crt 文件放到 Nginx 的
conf.d
目录下的 ssl_certificate 配置中。
- 将公钥 CSR 发送给 CA 或将收到的.crt 文件放到 Nginx 的
-
编辑 Nginx 配置文件:
- 使用文本编辑器打开
/etc/nginx/nginx.conf
或对应的虚拟主机配置文件(vhost),如sites-available/your_domain.com.conf
。 - 在 server 指令下添加以下内容(替换
your_domain.com
,fullchain.pem
和privkey.pem
为你实际的域名和证书路径):Nginxserver { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; # 更多配置选项... }
- 使用文本编辑器打开
-
测试配置:
- 重启 Nginx (
sudo systemctl restart nginx
或sudo service nginx reload
),然后尝试访问 HTTPS 地址验证是否正常工作。
- 重启 Nginx (
-
配置强制HTTPS:
- 添加
return 301 https://$host$request_uri;
到 http 域下的 server 中,促使所有 HTTP 访问转向 HTTPS。
- 添加
-
检查SSL证书的有效性:
- 可以使用在线工具如 Qualys SSL Labs 或 SSL Checker 来确认证书的完整性和安全性。