要通过等保三级测评,ssl_ciphers必须禁用RC4、3DES、DES、MD5、SHA1、EXPORT、NULL、ANONYMOUS、PSK及静态RSA套件,仅保留ECDHE/DHE密钥交换且支持PFS与AEAD的强套件(如ECDHE-RSA-AES128-GCM-SHA256),并配合ssl_protocols TLSv1.2 TLSv1.3和ssl_prefer_server_ciphers on生效。

要让 Web 服务器通过等保三级测评,ssl_ciphers 配置不能只写“高安全”或套用网上旧模板,必须精准剔除所有已知不安全算法,只保留支持前向保密(PFS)和 AEAD 认证加密的强套件,并与 ssl_protocols、ssl_prefer_server_ciphers 协同生效。
必须禁用的弱算法类型
以下关键词只要出现在 ssl_ciphers 字符串中,即视为不合规,需彻底删除:
- RC4(如 RC4-SHA、RC4-MD5)——易受 Bar Mitzvah 攻击,PCI DSS 和等保均明令禁止
- 3DES / DES(如 EDE3-SHA、DES-CBC-SHA)——密钥过短,存在 Sweet32 等已知碰撞风险
- MD5 或 SHA1 哈希套件(如含 -MD5,或 RSA-AES256-SHA 中的 SHA1 签名)——哈希强度不足,不满足等保完整性要求
- EXPORT、NULL、ANONYMOUS、PSK 类套件(如 EXP-EDH-RSA-DES-CBC-SHA)——密钥长度低于 40 位或无认证机制
- 静态 RSA 密钥交换(如 AES256-SHA)——不支持前向保密,等保三级明确淘汰
推荐的安全 ssl_ciphers 配置(等保三级基线)
该配置已实测通过 SSL Labs A+ 评级,覆盖主流浏览器及移动端,同时满足等保对 PFS、AEAD、TLS 版本的全部硬性要求:
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; ssl_ecdh_curve secp256r1:secp384r1;
说明:
- TLS 1.3 套件由协议自动协商,无需在 ssl_ciphers 中显式列出
- 所有套件均基于 ECDHE 或 DHE,确保前向保密
- 全部使用 AES-GCM 或 CHACHA20-POLY1305,满足 AEAD 加密要求
- 未包含 CAMELLIA、SEED、IDEA 等非主流、审计不足算法
兼容旧设备时的谨慎补充(仅限必要场景)
若业务真实依赖 IE11(Win7/8.1)、Android 5–6、OpenSSL 1.0.2 或 Java 7u80 等环境,可在上述基线基础上,仅限 TLS 1.2 下追加以下 CBC 模式但强哈希的套件:
- ECDHE-RSA-AES128-SHA256:IE11 默认启用,SHA256 替代 SHA1,TLS 1.2 下已规避 POODLE
- ECDHE-RSA-AES256-SHA384:部分政务/金融旧系统必需,性能略低但安全性未妥协
⚠️ 注意:ECDHE-RSA-AES128-SHA(含 SHA1)不可用;AES256-SHA 等静态 RSA 套件绝对禁止加入。
验证配置是否真正生效
reload nginx 后,必须实测确认弱算法已被清除,不能仅凭配置文件判断:
- 用 nmap --script ssl-enum-ciphers -p 443 yourdomain.com 扫描,输出中不应出现 RC4、3DES、MD5、EXPORT、NULL 等字样
- 提交至 SSL Labs SSL Test,评级至少为 A,且 “Handshake Simulation” 中无老旧客户端(如 IE8/XP、Android 2.3)回退到弱套件
- 检查 Nginx 错误日志,确认无 no suitable key exchange algorithm 或 no ciphers 类报错











