测试Nginx HTTPS加密强度需验证TLS 1.2/1.3协议、前向保密套件、完整证书链、HSTS头部及OCSP Stapling是否生效,须通过OpenSSL命令、SSL Labs工具和curl实测,结果须与Nginx配置严格一致。

要测试生产环境中 Nginx 的 HTTPS 加密强度,不能只看“能访问”或“小锁图标显示”,关键得验证协议版本、加密套件、证书链、HSTS、OCSP 等真实安全能力是否符合现代标准(如 TLS 1.2/1.3、前向保密、完整证书链)。以下是可直接落地的实操方法:
确认 TLS 协议与加密套件是否合规
用 OpenSSL 命令逐项探测服务端实际启用的能力:
- 检查是否禁用 TLS 1.0/1.1:
openssl s_client -connect rmbg.yourcompany.com:443 -tls1_1 2>/dev/null | grep "Protocol"
若返回
Protocol : TLSv1.1或成功连接,说明未禁用——存在降级风险。 - 验证 TLS 1.3 是否启用:
openssl s_client -connect rmbg.yourcompany.com:443 -tls1_3 2>/dev/null | grep "Protocol"
应输出
TLSv1.3。 - 查看实际协商的加密套件:
openssl s_client -connect rmbg.yourcompany.com:443 -cipher 'ALL' 2>/dev/null | grep "Cipher is"
输出的 cipher 名称需匹配你配置中
ssl_ciphers所列(如TLS_AES_256_GCM_SHA384),且不含RC4、DES、MD5、3DES等已淘汰算法。
验证证书链完整性与信任路径
浏览器地址栏的小锁图标有时会“误判”——尤其在内网环境或中间证书缺失时。应主动检查:
- 使用在线工具:SSL Labs SSL Test 输入域名,它会给出 A+ / B / F 评级,并明确指出:
✅ 是否有完整证书链(Chain issues → “No”)
✅ 是否使用可信根 CA(Trusted → “Yes”)
✅ OCSP Stapling 是否启用(OCSP stapling → “Yes”) - 本地快速验证链是否完整:
openssl s_client -connect rmbg.yourcompany.com:443 -showcerts 2>/dev/null | openssl x509 -noout -text | grep "CA Issuers"
输出应包含有效的
http://地址(即中间证书下载链接),且该地址可被公网或内网 DNS 解析并返回证书。
检查关键安全头部与协议增强功能
这些不靠浏览器 UI 显示,但直接影响防护能力:
- HSTS 是否生效(防 HTTP 降级):
curl -I https://rmbg.yourcompany.com 2>/dev/null | grep -i "strict-transport-security"
应返回类似
strict-transport-security: max-age=63072000; includeSubDomains; preload。 - OCSP Stapling 是否工作:
openssl s_client -connect rmbg.yourcompany.com:443 -status 2>/dev/null | grep -A 17 "OCSP response"
若看到
OCSP Response Status: successful (0x0)和Cert Status: good,说明启用成功。 - HTTP/2 是否就绪(影响性能与兼容性):
curl -I --http2 https://rmbg.yourcompany.com 2>/dev/null | head -1
正常应返回
HTTP/2 200。
模拟老旧客户端验证兼容性边界(可选但推荐)
避免“加固过头”导致业务中断:
- 测试 TLS 1.2 客户端能否连通(如旧版 Android/iOS App):
openssl s_client -connect rmbg.yourcompany.com:443 -tls1_2
- 检查是否仍支持 ECDHE(保障前向保密):
openssl s_client -connect rmbg.yourcompany.com:443 -cipher 'ECDHE' 2>/dev/null | grep "Cipher is"
输出应非空,且 cipher 名含
ECDHE(如ECDHE-RSA-AES256-GCM-SHA384)。
所有测试结果应与你在 /etc/nginx/sites-available/rmbg 中配置的 ssl_protocols、ssl_ciphers、add_header Strict-Transport-Security、ssl_stapling on 等保持一致。不一致说明配置未生效或被覆盖(比如主 nginx.conf 中有冲突指令)。
配置生效后记得 reload:sudo nginx -t && sudo systemctl reload nginx。











