nginx https安全合规需三要素:可信证书建链、tls 1.2/1.3+hsts+ocsp stapling加固传输、自动续期防中断;必须禁用tls 1.0/1.1,启用pfs套件、完整证书链、严格响应头及私钥600权限。

要让 Nginx 的 HTTPS 配置真正达到安全与合规要求,不能只停留在“能用 HTTPS”,而需兼顾浏览器信任、等保/网安法基线、SEO 权重和长期运维稳定性。核心是三件事:用可信证书建立通道、用现代协议与头策略加固传输、用自动化机制防中断。
启用 TLS 1.2/1.3 并禁用老旧协议
仅启用 TLSv1.2 和 TLSv1.3 是当前合规底线(TLS 1.0/1.1 已被主流浏览器弃用,且不符合等保2.0加密要求)。配置时避免写成 ssl_protocols TLSv1 TLSv1.1 TLSv1.2 这类宽松写法,必须显式排除不安全版本:
ssl_protocols TLSv1.2 TLSv1.3;- 搭配前向保密(PFS)优先的密钥交换算法,如 ECDHE;
- 密钥长度建议使用 secp384r1 或更优的 x25519(OpenSSL 1.1.1+ 支持);
- 若兼容性要求极高(如仍需支持 Windows 7 IE11),可保留 TLSv1.2,但绝不启用 TLSv1.1 及以下。
强制 HSTS 并合理设置有效期
HSTS(HTTP Strict Transport Security)是让浏览器自动拒绝 HTTP 请求的关键机制,也是等保和 PCI DSS 明确要求项。上线稳定后应开启,并包含子域:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;-
max-age=31536000对应 1 年,满足等保三级“不少于 1 年”要求; -
includeSubDomains确保所有子域(如 api.example.com)一并受控; -
preload表示申请加入浏览器 HSTS Preload List,需确认域名已全站 HTTPS 且无 HTTP 回退路径后再启用。
启用 OCSP Stapling 提升验证效率与隐私
传统 OCSP 查询会暴露用户访问行为给第三方 CA,而 OCSP Stapling 由服务器主动缓存并响应吊销状态,既提速又保隐私,也是等保对证书有效性校验的推荐方式:
- 确保配置中包含:
ssl_stapling on;、ssl_stapling_verify on;; - 指定可信根证书链:
ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;; - 配置 DNS 解析器(避免依赖系统默认):
resolver 8.8.8.8 1.1.1.1 valid=300s;; - 注意:Let’s Encrypt 的 OCSP 响应有效期为 4 天,
valid=300s足够高频刷新,避免缓存过期导致 stapling 失效。
补充关键安全响应头防常见攻击
单靠 HTTPS 不足以抵御 XSS、MIME 嗅探或点击劫持。这些响应头虽不属 TLS 层,却是整体合规性评分(如 Mozilla Observatory、securityheaders.com)的核心项:
-
add_header X-Content-Type-Options "nosniff" always;—— 阻止浏览器 MIME 类型猜测; -
add_header X-Frame-Options "SAMEORIGIN" always;—— 防页面被嵌入恶意 iframe; -
add_header Referrer-Policy "no-referrer-when-downgrade" always;—— 控制 Referer 泄露; - 如需更强防护,可叠加 CSP(Content-Security-Policy),例如限制 script 只能加载同源或指定 CDN。











