TLS 配置基线是什么
TLS 配置基线规定对外服务允许的协议版本、加密套件、密钥强度与证书管理方式。基本口径是禁用 SSLv3 与 TLS 1.0/1.1,优先使用 TLS 1.2 及以上,停用弱套件与短密钥,并启用 HSTS 强制加密访问。基线要覆盖 Nginx、Tomcat、数据库连接与内部服务间调用。
基本信息
| 协议版本 | 禁用 SSLv2/SSLv3 与 TLS 1.0/1.1,启用 TLS 1.2 及以上 |
|---|---|
| 套件选择 | 优先前向安全的 ECDHE 套件,禁用 RC4、3DES、导出级套件 |
| 密钥强度 | RSA 建议 2048 位以上,优先使用支持前向保密的交换方式 |
| 证书管理 | 建立到期巡检机制,私钥文件权限最小化并加密保护 |
| HSTS | 对外站点启用 Strict-Transport-Security 并逐级提高时长 |
| 覆盖范围 | 网关、应用、中间件、数据库与内部调用链路 |
典型使用场景
- 等保测评前核查对外站点的协议与套件是否符合基线要求
- 通过安全扫描发现弱套件或协议版本告警后的整改动作
- 证书到期前巡检,避免浏览器报错或接口调用失败
- 应用对外接口改造时统一收敛加密参数
- 内部服务间通信启用 TLS 并校验对端证书,避免明文内网传输
Nginx 参考配置
Nginx 参考配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
add_header Strict-Transport-Security "max-age=31536000" always; # 逐步提高时长核查命令
核查命令
# 查看服务实际协商的协议与套件
openssl s_client -connect demo.example.com:443 -servername demo.example.com </dev/null 2>/dev/null | grep -E "Protocol|Cipher"
# 查看证书有效期与颁发链
openssl s_client -connect demo.example.com:443 -servername demo.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates -issuer常见问题与整改
| 问题 | 风险 | 整改动作 |
|---|---|---|
| 开放 TLS 1.0 | 已知弱协议,扫描直接告警 | 评估客户端兼容面后关闭并设置收口计划 |
| 使用 RC4 或 3DES | 存在已知攻击面 | 移出套件列表,仅保留 AEAD 套件 |
| 自签名证书长期使用 | 客户端校验失效形同虚设 | 更换受信证书,内部系统建自有 CA 管理 |
| 证书过期未巡检 | 业务中断与信任告警 | 建立到期台账与提前 30 天提醒 |
| HSTS 设置后无法回退 | 配置错误时影响面大 | 先短时长灰度,确认全链路 HTTPS 后再延长 |
HSTS 会强制浏览器只走 HTTPS,配置前需确认站点所有资源都已 HTTPS 化;建议先用较短 max-age 试运行,再逐步延长。
协议加固属于可能中断业务的变更:改前在测试环境验证客户端兼容性,改后保留回退配置,并记录变更时间与验证结论。