应仅启用TLSv1.2和TLSv1.3,禁用TLSv1.0/1.1及更早协议;配置强PFS加密套件并启用ssl_prefer_server_ciphers on;添加HSTS头max-age=31536000;开启OCSP Stapling与10m共享会话缓存。

针对管理后台这类高敏感入口,Nginx 需要区别于普通业务站点,启用更严格的 SSL/TLS 策略——不是简单开启 HTTPS,而是主动收紧协议版本、加密强度、证书校验与会话行为,防止中间人、降级攻击和弱密码协商。
只允许 TLS 1.2 和 TLS 1.3
禁用所有已废弃或存在已知漏洞的协议版本。TLS 1.0/1.1 已被 IETF 正式弃用,POODLE、BEAST 等漏洞可被利用:
- 在 http 或专用 server 块中明确指定:
ssl_protocols TLSv1.2 TLSv1.3; - 绝对不要写
TLSv1或TLSv1.1,哪怕加注释也不推荐 - 若后端管理服务(如 Grafana、Prometheus、自建运维平台)也强制 TLS 1.2+,该设置能与之对齐,避免握手失败
限定高强度加密套件
避免协商出 RC4、3DES、MD5、SHA1 等已被攻破或淘汰的算法:
- 使用现代、前向保密(PFS)优先的套件组合:
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; - 必须加上
ssl_prefer_server_ciphers on;,确保 Nginx 主导密码选择权 - 避免使用
HIGH:!aNULL:!MD5这类宽泛表达,它仍可能包含 SHA1 套件
启用 HSTS 并设长期有效期
强制浏览器仅通过 HTTPS 访问管理后台,杜绝 HTTP 重定向被劫持的风险:
- 添加响应头:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; -
max-age=31536000对应 1 年,适用于稳定运行的管理域 -
includeSubDomains覆盖所有子域名(如 admin.example.com、api.admin.example.com) -
preload是可选但推荐项,为后续提交至浏览器 HSTS 预加载列表做准备
强化证书验证与会话安全
管理后台尤其需防范证书伪造与会话复用攻击:
- 开启 OCSP Stapling,加快客户端证书状态验证:
ssl_stapling on;<br>ssl_stapling_verify on;<br>ssl_trusted_certificate /etc/nginx/ssl/ca-bundle.crt;
- 增大 TLS 会话缓存并延长超时:
ssl_session_cache shared:SSL:10m;<br>ssl_session_timeout 24h;
(比默认 5–10 分钟更合理) - 关闭服务器版本泄露:
server_tokens off;,隐藏 Nginx 版本号,减少指纹暴露


















