Nginx 配置 SSL 并实现默认 HTTPS 访问
要在 Nginx 上配置 SSL 并强制所有流量通过 HTTPS 访问,请按照以下步骤操作:
- 获取 SSL 证书
首先,你需要获取有效的 SSL 证书。你可以从以下途径获取:
• 从 Let’s Encrypt 获取免费证书(推荐)
• 从商业 CA 购买证书
• 自签名证书(仅用于测试)
使用 Let’s Encrypt 获取证书(推荐)
1 | sudo apt install certbot python3-certbot-nginx |
- 配置 Nginx SSL
编辑你的 Nginx 站点配置文件(通常在 /etc/nginx/sites-available/yourdomain.com
):
1 | server { |
- 强制 HTTPS 重定向
添加或修改 HTTP (80 端口) 的服务器块,将所有 HTTP 请求重定向到 HTTPS:
1 | server { |
- 测试并重新加载配置
测试 Nginx 配置是否正确:
1 | sudo nginx -t |
如果没有错误,重新加载 Nginx:
1 | sudo systemctl reload nginx |
- 自动续订证书(仅适用于 Let’s Encrypt)
设置自动续订:
1 | sudo certbot renew --dry-run |
可以添加到 crontab 自动续订:
1 | sudo crontab -e |
添加以下行:
1 | 0 12 * * * /usr/bin/certbot renew --quiet |
验证配置
访问你的网站,确保:
- 输入
http://yourdomain.com
会自动跳转到https://yourdomain.com
- 浏览器地址栏显示安全锁标志
- 可以使用 SSL Labs 测试工具 检查 SSL 配置安全性
注意事项
- 确保防火墙允许 443 端口(HTTPS)的入站连接
- 定期检查证书是否自动续订成功
- 如果使用自签名证书,浏览器会显示安全警告,不适合生产环境
- 对于多域名配置,确保每个域名都有正确的 SSL 证书
通过以上配置,你的网站将默认使用 HTTPS,并提供安全的加密连接。