為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標準格式和十六進位之間的對照關係。