nginx ssl配置步骤
2025-05-19
1
参考资料
nginx ssl配置步骤
安装nginx
Ubuntu/Debian:
sudo apt-get install nginx
CentOS/RHEL:
sudo yum install nginx
获取SSL证书
从CA机构购买或使用Let's Encrypt免费证书
或生成自签名证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
配置nginx
编辑配置文件(通常位于
/etc/nginx/sites-available/default
或/etc/nginx/conf.d/default.conf
)添加SSL相关配置
重启nginx
sudo systemctl restart nginx
适用操作系统
Linux发行版(Ubuntu/Debian/CentOS/RHEL等)
理论上也适用于Windows版nginx
证书有效性要求
证书必须在有效期内
证书链必须完整
私钥必须匹配
证书的CN或SAN必须包含域名
配置示例
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root /var/www/html; index index.html; } } server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
调试与验证
检查nginx配置语法:
sudo nginx -t
查看nginx错误日志:
tail -f /var/log/nginx/error.log
在线验证工具:
SSL Labs测试: https://www.ssllabs.com/ssltest/
命令行验证:
openssl s_client -connect example.com:443 -servername example.com
注意事项
使用强加密算法(推荐TLS 1.2/1.3)
定期更新证书(特别是Let's Encrypt的90天证书)
确保私钥文件权限设置为600
配置HTTP到HTTPS的重定向
启用HSTS头部增强安全性
生产环境不建议使用自签名证书
注意混合内容问题(确保所有资源都通过HTTPS加载)
考虑启用OCSP Stapling提高性能
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。