阅读量:2
Nginx 在 CentOS 上的 SSL 优化要点
一 基础安全与协议配置
- 仅启用现代协议:优先使用 TLSv1.2/TLSv1.3,禁用 SSLv2/SSLv3/TLSv1.0/TLSv1.1。TLSv1.3 握手次数更少、性能更好。
- 选择支持前向保密(FS)的 AEAD 套件,优先 ECDHE + AES-GCM/CHACHA20-POLY1305。
- 开启 HTTP/2 提升多路复用与头部压缩性能。
- 隐藏版本号、添加安全头(如 X-Frame-Options、X-Content-Type-Options)降低信息泄露与点击劫持风险。
示例片段:
server {
listen 443 ssl http2;
server_name example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
server_tokens off;
}
以上做法可同时兼顾安全与性能,并符合现代浏览器与评测要求。
二 性能优化关键参数
- 会话复用:开启共享会话缓存与会话超时,显著降低完整握手次数。
- 会话票据:在部分合规/重放敏感场景可关闭 ssl_session_tickets;若启用需确保密钥轮换。
- OCSP Stapling:由服务器“装订”证书状态,减少客户端外连 CA 的延迟与隐私暴露。
- TLSv1.3 0-RTT:对可重放场景(如静态资源、幂等 API)可开启 ssl_early_data;对涉及敏感操作的业务应谨慎。
示例片段:
ssl_session_cache shared:SSL:10m; # 约可缓存4万会话
ssl_session_timeout 1d;
ssl_session_tickets off; # 视业务与合规要求选择
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
resolver 223.5.5.5 8.8.8.8 valid=300s;
resolver_timeout 5s;
# 仅当业务可容忍重放风险时启用
# ssl_early_data on;
上述参数在保障安全的前提下,有效缩短首包时间并提升握手效率。
三 证书与自动续期
- 使用 Let’s Encrypt 获取免费证书,配合 Certbot 自动配置与续期。
- 证书路径通常为:域名证书链 fullchain.pem 与私钥 privkey.pem;OCSP 装订使用 chain.pem。
- 建议添加定时任务自动续期,并在续期后重载 Nginx。
示例命令:
# 安装
sudo yum install -y epel-release
sudo yum install -y certbot python3-certbot-nginx
# 获取证书(自动修改 Nginx 配置)
sudo certbot --nginx -d example.com -d www.example.com
# 测试续期
sudo certbot renew --dry-run
# 生产环境建议每日检查(系统自带 cron 每天执行)
echo '0 3 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx' | sudo tee -a /etc/crontab
以上流程可确保证书长期有效并减少人工运维成本。
四 验证与排错
- 配置语法与重载:每次修改后执行
sudo nginx -t && sudo systemctl reload nginx。 - 在线评测:使用 Qualys SSL Labs 测试安全与兼容性,目标 A/A+。
- 握手与证书诊断:
openssl s_client -connect example.com:443 -servername example.com -tlsextdebug 2>&1 | grep -i "certificate\|protocol"curl -Iv https://example.com
- 常见问题:
- 证书链不完整导致不受信任或握手失败,确保使用 fullchain.pem 并正确配置 ssl_trusted_certificate(OCSP)。
- HTTP 资源混用引发 Mixed Content,需全站资源走 HTTPS。
- 续期失败多因 80/443 端口被占用或 .well-known 不可达,排查端口占用与目录权限。
这些步骤能快速定位协议、套件、证书链与网络连通性问题。
五 进阶场景与注意事项
- 启用 HTTP/2 已是现代站点标配,可与 TLS 协同提升并发与首包性能。
- 代理 WSS(WebSocket Secure)时,确保反向代理使用 proxy_http_version 1.1、合理超时与长连接配置,证书链完整。
- 安全头与信息泄露防护:启用 HSTS、X-Frame-Options、X-Content-Type-Options,并关闭 server_tokens。
- 合规与风险:启用 TLSv1.3 0-RTT 需评估重放攻击风险;对敏感业务建议保持默认关闭。
示例(WSS 片段):
location /wss/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 3600s;
}
以上实践覆盖 HTTPS/WSS 全链路与安全合规要点。
以上就是关于“nginx在centos上ssl优化技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm