应依据扫描报告中不合规套件名,逐项对照openssl四字段命名规则精准剔除:ecdhe(密钥交换)可保留,rsa/ecdsa(签名)按证书类型匹配,aes-gcm/chacha20(对称加密)安全,sha1/md5/cbc/3des/rc4/dhe等高危组件须禁用;推荐配置ecdhe-ecdsa-aes256-gcm-sha384:ecdhe-rsa-aes256-gcm-sha384:ecdhe-ecdsa-chacha20-poly1305:ecdhe-rsa-chacha20-poly1305,并强制ssl_protocols tlsv1.2 tlsv1.3、ssl_prefer_server_ciphers off,最后用openssl s_client和ssl labs实测验证。

看懂套件名的四个字段,定位问题根源
比如 ECDHE-RSA-AES128-SHA,它由四段组成,每段对应一类密码学组件:
- ECDHE:密钥交换方式 → 支持前向保密,可保留
-
RSA:签名算法 → 若用 RSA 证书,合法;若用 ECDSA 证书,则应配
ECDHE-ECDSA -
AES128:对称加密 →
AES128-GCM安全,但AES128-SHA或AES128-CBC不安全 -
SHA:哈希函数 → 表示 SHA-1,已被禁用;
-SHA256和-SHA384可接受
所以 ECDHE-RSA-AES128-SHA 的问题在末尾 -SHA,必须移除;而 ECDHE-RSA-AES128-SHA256 是合规的。
按漏洞类型批量剔除高危套件
扫描报告常归类为 BEAST、POODLE、Sweet32 等,每类对应明确缺陷,可针对性过滤:
-
BEAST / POODLE:所有 CBC 模式套件(如
-AES128-SHA、-AES256-SHA、-CAMELLIA128-SHA),一律禁用 -
Sweet32:所有 64 位分组密码,典型是
DES-CBC3-SHA(即 3DES),必须清除 -
Logjam:含 DHE 且 DH 参数低于 2048 位的套件(如
DHE-RSA-AES128-SHA)→ 更稳妥做法是直接去掉所有 DHE,只留 ECDHE -
全局禁用:
!RC4:!EXPORT:!NULL:!aNULL:!eNULL,无需犹豫
选用经验证的强套件组合
以下配置已通过 Qualys SSL Labs、myssl.com 等主流扫描器验证,兼顾安全性与现代客户端兼容性:
ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305";
配套必须设置:
-
ssl_protocols TLSv1.2 TLSv1.3;(显式禁用 TLSv1.0 和 TLSv1.1) -
ssl_prefer_server_ciphers off;(避免客户端降级协商)
验证配置是否真正生效
不能只信配置文件,要实测确认:
- 执行
nginx -t校验语法,再nginx -s reload生效 - 用
openssl s_client -connect yourdomain.com:443 -tls1_2查看实际协商出的套件 - 提交到 SSL Labs 或 myssl.com,重点检查 “Handshake Simulation” 中各客户端是否均未回退到 CBC、SHA1 或 TLSv1.1











