为CLB配置HTTPS监听时,TLS安全策略决定了CLB与客户端进行TLS协商时支持的TLS协议版本和加密算法套件。CLB预置了部分常用的TLS安全策略供用户直接选择。
工作原理
TLS安全策略配置在CLB侧,用于定义其在TLS协商中支持的TLS协议版本和加密算法套件。在握手过程中,客户端通过Client Hello发送支持的协议版本和加密套件列表,CLB根据策略从列表中选择双方都支持的协议版本和加密套件组合并以Server Hello响应,后续步骤(如密钥交换、会话密钥生成)均基于此方案进行。
TLS安全策略
各类信息安全标准可能对CLB的TLS安全策略提出要求,用户可展开下表查看各策略支持的TLS协议版本和加密算法套件,用户可按需配置。CLB不支持自定义TLS安全策略,如有需求,可使用ALB或NLB。
对于面向公网且无特殊兼容性要求的应用,建议使用 tls_cipher_policy_1_2 及以上策略。
为监听配置TLS安全策略
控制台
添加HTTPS监听时,在SSL证书页签,单击高级配置后面的编辑,在展开项中选择TLS安全策略。
修改TLS安全策略:在实例详情页的监听页签,单击目标HTTPS监听名称打开监听详情对话框,在SSL 证书区域修改TLS安全策略。
API
调用CreateLoadBalancerHTTPSListener创建HTTPS监听或调用SetLoadBalancerHTTPSListenerAttribute修改HTTPS监听的配置时,TLSCipherPolicy字段传入TLS安全策略。
计费说明
TLS安全策略本身不产生任何费用。购买和使用CLB实例将产生费用。
常见问题
CLB支持配置自定义TLS安全策略吗?
不支持。CLB目前仅支持预设的TLS安全策略。
如有自定义TLS安全策略的需求,推荐使用以下产品:
应用型负载均衡ALB:配置HTTPS监听时,支持自定义TLS安全策略。
网络型负载均衡NLB:配置TCPSSL监听时,支持自定义TLS安全策略。
后端 Nginx 的 ssl_protocols 配置为什么不生效?
当使用 CLB 时,TLS 握手由 CLB 完成(TLS 终止),后端服务器的 ssl_protocols 配置不会影响客户端可见的 TLS 版本。如需调整 TLS 版本支持,请修改 CLB HTTPS 监听的 TLS 安全策略:在实例详情页的监听页签,单击目标 HTTPS 监听名称打开监听详情对话框,在SSL 证书区域修改TLS安全策略。
如需提升 SSL Labs 评级至 A 或启用 TLS 1.3,请参见「应用于生产环境」章节中的 SSL Labs 评级说明,选择 tls_cipher_policy_1_2_strict_with_1_3 策略。
为什么 CLB 已绑定有效证书,浏览器仍提示不安全?
可能原因及排查建议如下:
TLS 安全策略包含弱加密套件:如果 HTTPS 监听的 TLS 安全策略为
tls_cipher_policy_1_0等包含弱加密套件(如DES-CBC3-SHA)的策略,此类套件不支持前向保密(PFS),部分浏览器会提示不安全。建议在实例详情页的监听页签,单击目标 HTTPS 监听名称打开监听详情对话框,在SSL 证书区域将TLS安全策略修改为tls_cipher_policy_1_2_strict。转发策略中存在无关旧域名规则:如果转发策略或扩展域名中存在与当前访问域名无关的旧规则,可能导致证书域名不匹配。建议在监听配置中删除多余的转发规则。
证书域名不匹配或已过期:确认绑定的服务器证书域名与实际访问域名一致,且证书未过期。
浏览器缓存:清理浏览器缓存后重新访问。
建议按上述顺序逐一排查。
如何修复 CVE-2016-2183 漏洞?
CVE-2016-2183 是 SSL/TLS 协议信息泄露漏洞(Sweet32 攻击),其根因是 DES-CBC3-SHA 加密套件使用 64 位分组密码,存在数据块碰撞泄露风险。tls_cipher_policy_1_0、tls_cipher_policy_1_1 和 tls_cipher_policy_1_2 策略均包含该套件,若安全扫描报告中出现 CVE-2016-2183 告警,可通过以下步骤修复:
登录传统型负载均衡 CLB 控制台。
在实例管理页面,找到目标 CLB 实例,单击实例 ID。
在实例详情页的监听页签,单击目标 HTTPS 监听名称打开监听详情对话框。
在SSL 证书区域,将TLS安全策略修改为
tls_cipher_policy_1_2_strict或tls_cipher_policy_1_2_strict_with_1_3。单击确定。修改后,
DES-CBC3-SHA加密套件将被排除,CVE-2016-2183 漏洞修复完成。
建议在业务低峰期进行修改和测试。如变更后出现异常,可立即通过修改监听配置回滚。
应用于生产环境
TLS协议版本:如应用无特殊兼容性要求,建议使用TLS 1.2和TLS 1.3保障安全性。
变更回滚:调整TLS安全策略后,若出现异常,可立即通过修改监听配置回滚。建议在业务低峰期进行变更。
密钥交换算法:如应用无特殊兼容性要求,生产环境不建议使用以下RSA密钥交换算法套件:
AES128-GCM-SHA256、AES256-GCM-SHA384、AES128-SHA256、AES256-SHA256、AES128-SHA、AES256-SHA、DES-CBC3-SHA。此类套件不支持前向保密(PFS),且存在侧信道攻击风险。建议优先选择包含ECDHE或DHE密钥交换的套件。SSL Labs 评级:TLS 安全策略的选择直接影响 SSL Labs 等第三方工具的安全检测评级。下表列出各策略与 SSL Labs 评级的对照关系:
TLS 安全策略
SSL Labs 评级
TLS 1.3 支持
tls_cipher_policy_1_0
B
否
tls_cipher_policy_1_1
B
否
tls_cipher_policy_1_2
B
否
tls_cipher_policy_1_2_strict
B
否
tls_cipher_policy_1_2_strict_with_1_3
A
是
如需将 SSL Labs 评级提升至 A 并启用 TLS 1.3 支持,请选择
tls_cipher_policy_1_2_strict_with_1_3策略。CLB TLS 终止:CLB 作为 TLS 终止点,TLS 握手在 CLB 层完成。客户端可见的 TLS 版本由 CLB 的 TLS 安全策略决定,与后端服务器的
ssl_protocols配置无关。如需调整客户端支持的 TLS 版本,请修改 CLB HTTPS 监听的 TLS 安全策略,而非后端服务器配置。
安全建议
tls_cipher_policy_1_0、tls_cipher_policy_1_1 和 tls_cipher_policy_1_2 策略包含 DES-CBC3-SHA(即 IANA 名称 TLS_RSA_WITH_3DES_EDE_CBC_SHA)加密算法套件,该套件使用 64 位分组密码,存在 Sweet32 攻击风险(CVE-2016-2183)。如安全扫描报告中出现该 CVE 告警,建议将 TLS 安全策略升级至 tls_cipher_policy_1_2_strict 或更高版本以消除风险。
下表列出各 TLS 安全策略对 DES-CBC3-SHA 套件的支持情况:
策略名称 | 包含 DES-CBC3-SHA | 安全建议 |
tls_cipher_policy_1_0 | 是(存在 Sweet32 风险) | 不建议在生产环境使用 |
tls_cipher_policy_1_1 | 是(存在 Sweet32 风险) | 不建议在生产环境使用 |
tls_cipher_policy_1_2 | 是(存在 Sweet32 风险) | 不建议在有安全合规要求的场景使用 |
tls_cipher_policy_1_2_strict | 否 | 推荐 |
tls_cipher_policy_1_2_strict_with_1_3 | 否 | 推荐 |
升级操作
控制台
在实例详情页的监听页签,单击目标 HTTPS 监听名称打开监听详情对话框,在SSL 证书区域将TLS安全策略修改为 tls_cipher_policy_1_2_strict 或 tls_cipher_policy_1_2_strict_with_1_3,然后单击确定。
API
调用SetLoadBalancerHTTPSListenerAttribute修改 HTTPS 监听,将 TLSCipherPolicy 参数设置为 tls_cipher_policy_1_2_strict。
兼容性提示
升级 TLS 安全策略会移除对 TLS 1.0/1.1 协议及部分旧加密套件的支持,建议:
变更前确认客户端(浏览器、移动端 SDK、第三方对接系统等)支持 TLS 1.2 及以上协议。
在业务低峰期进行变更。如变更后出现异常,可立即通过修改监听配置回滚。
TLS加密算法套件名称对照表
下表提供了各加密算法套件在OpenSSL格式、IANA标准格式和十六进制之间的对照关系。