等保三级要求nginx禁用rc4、3des、des、md5、sha1、export、null等弱算法,仅保留支持pfs和aead的强套件,如ecdhe-ecdsa-aes128-gcm-sha256等,并限定tlsv1.2+,配置后需用nmap和ssl labs验证。

要让 Nginx 通过等保三级测评,ssl_ciphers 配置不能只求“能用”,必须精准剔除所有已知不安全算法,只保留支持前向保密(PFS)和 AEAD 认证加密的强套件。等保明确要求禁用 RC4、3DES、DES、MD5、SHA1、EXPORT、NULL 等弱算法,且 TLS 版本必须限定为 v1.2 及以上。
必须禁用的弱加密套件类型
以下关键词出现在 ssl_ciphers 中即视为不合规,需彻底移除:
- RC4(如 RC4-SHA、RC4-MD5)——易受 Bar Mitzvah 攻击
- 3DES(如 EDE3-SHA、3DES-EDE-CBC-SHA)——存在 Sweet32(CVE-2016-2183)碰撞风险
- DES(如 DES-CBC-SHA)——密钥过短,已被标准弃用
- MD5 或 SHA1 哈希套件(如 ECDHE-RSA-AES128-SHA 中的 SHA1 可接受,但含 -MD5 的一律禁止)
- EXPORT 级套件(如 EXP-EDH-RSA-DES-CBC-SHA)——密钥长度不足 40 位
- NULL、ANONYMOUS、PSK 类无认证或静态密钥套件(如 RSA-AES256-SHA)——不支持前向保密
推荐的安全 ssl_ciphers 配置(等保三级基线)
该配置兼顾安全性与主流兼容性,覆盖 Chrome/Firefox/Edge/Safari 最新版本及 Android 7+、iOS 11+ 设备:
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:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on;
说明:
- TLS 1.3 套件由协议自动协商,无需在 ssl_ciphers 中显式列出
- 所有套件均基于 ECDHE 或 DHE,确保前向保密
- 全部使用 AES-GCM 或 CHACHA20-POLY1305,满足 AEAD 加密要求
- 不含任何 CAMELLIA、SEED 等非主流、审计不足的算法
验证配置是否生效的关键步骤
改完配置后,不能仅靠 reload 就认为完成。必须实测确认弱算法已被清除:
- 用
nmap --script ssl-enum-ciphers -p 443 yourdomain.com扫描,输出中不应出现 RC4、3DES、MD5、EXPORT 等字样 - 访问 SSL Labs SSL Test,评级至少为 A,且“Handshake Simulation”中无 IE8/XP、Android 2.3 等老旧客户端回退到弱套件
- 检查 Nginx 错误日志,确认无
no suitable key exchange algorithm或no ciphers available报错
面向旧系统兼容的谨慎补充(仅限必要场景)
若业务强制要求支持 Windows 7 + IE11 或部分金融类嵌入式终端,可追加以下 TLS 1.2 专属 CBC 套件,但须满足两个前提:
- 仅在 确有真实访问需求 且无法升级终端时启用
- 必须配合
ssl_prefer_server_ciphers on和严格限制ssl_protocols TLSv1.2 TLSv1.3
可选补充(不建议默认开启):
ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
⚠️ 绝对不要加入 AES256-SHA、DES-CBC3-SHA 或任何静态 RSA 套件。











