SSL Labs在线测试是最权威的Nginx SSL配置验证方式,可精准定位协议、密钥交换、加密套件等问题;需绕过CDN/代理直连Nginx,重点检查Overall Rating(A+为优)、Protocol Support(仅TLS 1.2/1.3)、Key Exchange(ECDHE优先)和Cipher Suites(无红色弱项),并依报告反推修复ssl_protocols、ssl_ciphers等配置。

直接用 SSL Labs 的在线测试工具(https://www.php.cn/link/c182dc5c90dc87dfee9cd309c33f19b3)是最权威、最实用的验证方式。它不只给个 A 或 F,而是逐项指出协议支持、密钥交换、密码套件等具体问题,帮你精准定位 Nginx 配置缺陷。
确保测试结果真实反映你的 Nginx 配置
SSL Labs 测试的是最终终止 TLS 的那台服务器。如果前面有 CDN、反向代理或负载均衡器,必须临时绕过它们:
- 关闭 CDN(如 Cloudflare 切换为 “DNS only” 模式)
- 确认 DNS 已解析到 Nginx 服务器真实 IP
- 检查防火墙和云平台安全组,确保 443 端口对外开放且可被公网访问
- 若使用多层代理(如 Traefik → Nginx),需确保测试目标是你自己配置 SSL 的那台 Nginx
执行测试并读懂关键模块
在 SSL Labs 页面输入域名(如 example.com,不加 https://),提交后等待 3–5 分钟生成报告。重点关注以下四部分:
- Overall Rating:左上角总分,A+ 是当前最高标准,零红色警告才算达标
-
Protocol Support:应仅显示 TLS 1.2 和 TLS 1.3;若出现 TLS 1.0 或 TLS 1.1,说明
ssl_protocols未正确禁用 -
Key Exchange:优先看到 ECDHE + secp256r1 / x25519;若出现 RSA 密钥交换或弱曲线,需检查
ssl_ecdh_curve和密钥类型 - Cipher Suites:所有高亮红色项(如 “Weak cipher”、“Weak key exchange”)都是你要修复的具体配置点
用命令行快速验证常见项
无需等网页报告,日常调试可用这些命令交叉验证:
- 检查是否启用 TLS 1.3:
openssl s_client -connect example.com:443 -tls1_3 -servername example.com 2>/dev/null | grep "Protocol"
应输出Protocol : TLSv1.3 - 查看实际协商的加密套件:
nmap --script ssl-enum-ciphers -p 443 example.com
确认输出中无TLS_RSA_开头、不含SHA1或3DES的条目 - 验证证书链完整性:
openssl s_client -connect example.com:443 -showcerts 2>/dev/null | openssl crl2pkcs7 -nocrl -certfile /dev/stdin | openssl pkcs7 -print_certs -noout
应至少显示两层证书(域名证书 + 中间证书)
从报告反推 Nginx 配置修复项
每一条 SSL Labs 扣分项,基本都对应一行 Nginx 配置:
- 报 “TLS 1.0/1.1 enabled” → 改
ssl_protocols TLSv1.2 TLSv1.3;(必须显式写全,不能只写一个) - 报 “Weak cipher suites” → 更新
ssl_ciphers,推荐用 Mozilla Intermediate 套件,并配ssl_prefer_server_ciphers on; - 报 “Missing OCSP stapling” → 加
ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/fullchain.pem; - 报 “No HSTS header” → 加
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
不复杂但容易忽略


















