PCI-DSS合规要求Nginx禁用RC4、3DES/DES、MD5/SHA1、EXPORT、NULL/ANONYMOUS/PSK套件,仅启用ECDHE+AES-GCM/CHACHA20-POLY1305+SHA256+的强套件,并强制TLSv1.2+、server_ciphers on、指定secp384r1曲线。

要让 Nginx 静态站点通过 PCI-DSS 合规检查,ssl_ciphers 配置不能只删几个明显弱的套件,而必须系统性剔除所有被 PCI-DSS 明确禁止的算法类型,并确保与 ssl_protocols 协同生效。
必须从 ssl_ciphers 中彻底清除的关键词
只要套件名中包含以下任意一项,就属于 PCI-DSS 禁用范围,应直接移除:
- RC4(如 RC4-SHA、RC4-MD5)——易受 Bar Mitzvah 攻击
- 3DES 或 DES(如 DES-CBC-SHA、3DES-EDE-CBC-SHA)——密钥强度不足,存在 Sweet32 等碰撞风险
- MD5 或 SHA1(即末尾为 -SHA 的套件,如 ECDHE-RSA-AES128-SHA)——哈希已不满足 NIST/PCI 要求
- EXPORT(如 EXP-EDH-RSA-DES-CBC-SHA)——强制使用短密钥,等同于后门
- NULL、ANONYMOUS、PSK 类套件(如 RSA-AES256-SHA)——无认证或不支持前向保密(PFS)
推荐使用的强加密套件组合
PCI-DSS 要求必须启用前向保密(PFS)和 AEAD 认证加密模式。推荐配置如下(兼顾安全性与主流客户端兼容):
- ECDHE-ECDSA-AES256-GCM-SHA384(配 EC 证书时优先)
- ECDHE-RSA-AES256-GCM-SHA384(RSA 证书通用)
- ECDHE-RSA-AES128-GCM-SHA256(兼容性更广)
- ECDHE-ECDSA-CHACHA20-POLY1305(移动端优化)
注意:所有套件必须含 ECDHE(非 RSA 密钥交换),且对称加密部分必须是 AES-GCM 或 CHACHA20-POLY1305,哈希必须为 SHA256 或更高。
配套关键配置不可遗漏
仅改 ssl_ciphers 不足以过检,必须同步调整以下三项:
- ssl_protocols TLSv1.2 TLSv1.3 —— 必须显式禁用 TLSv1.0 和 TLSv1.1(PCI-DSS 刚性要求)
- ssl_prefer_server_ciphers on —— 防止客户端强制协商降级到弱套件
- ssl_ecdh_curve secp384r1(可选但推荐)—— 明确指定强椭圆曲线,避免协商 fallback 到 weak curve
修改后务必运行 nginx -t 校验语法,再执行 nginx -s reload 生效。
验证是否真正生效
配置上线后不能只信后台日志,需主动验证:











