Network Load Balancer 的 TLS 接聽程式 - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Network Load Balancer 的 TLS 接聽程式

若要使用 TLS 接聽程式,您必須在負載平衡器上部署至少一個伺服器憑證。負載平衡器使用伺服器憑證終止前端連接,然後解密用戶端的請求,再將它們傳送到目標。請注意,如果您需要將加密流量傳遞到目標而不使用負載均衡器解密,請在端口 443 上創建 TCP 偵聽器,而不是創建 TLS 偵聽器。

Elastic Load Balancing 使用 TLS 交涉組態 (稱為安全政策),在用户端與負載平衡器之間交涉 TLS 連線。安全政策為通訊協定與加密的組合。通訊協定會在用戶端與伺服器之間建立安全連線,並確保在用戶端與負載平衡器之間傳遞的所有資料為私有。隨碼是一項加密演算法,使用加密金鑰來建立編碼的訊息。通訊協定使用多個加密來加密透過網際網路的資料。在連線交涉程序期間,用戶端與負載平衡器會出示它們分別支援的加密和通訊協定的清單 (以偏好的順序)。系統會針對安全連線選取伺服器清單上符合任何用戶端加密的第一個加密。

Network Load Balancer 不支援 TLS 重新交涉。

若要建立 TLS 接聽程式,請參閱新增接聽程式。有關相關演示,請參閲Network Load Balancer 的 TLS SupportNetwork Load Balancer 的 SNI Support

伺服器憑證

負載平衡器需要 X.509 憑證 (伺服器憑證)。憑證為憑證授權機構 (CA) 發出的數位形式身分證明。憑證包含識別資訊、有效期間、公有金鑰、序號和發行者的數位簽章。

建立憑證以搭配您的負載平衡器使用時,您必須指定網域名稱。

我們建議您使用AWS Certificate Manager(ACM)。ACM 會與 Elastic Load Balancing 整合,以便您在負載平衡器上部署憑證。如需詳細資訊,請參閱《AWS Certificate Manager 使用者指南》。

或者,您可以使用 TLS 工具來建立憑證簽署請求 (CSR),然後取得由 CA 簽署的憑證 CSR 產生的憑證,然後匯入到 ACM 或上傳憑證至AWS Identity and Access Management(IAM). 如需詳細資訊,請參閱「」匯入憑證中的AWS Certificate Manager使用者指南或者使用伺服器憑證中的IAM User Guide

重要

您無法在 Network Load Balancer 上安裝具有大於 2048 位元 RSA 金鑰或 EC 金鑰的憑證。

預設憑證

建立 TLS 接聽程式時,您必須指定剛好一個憑證。此憑證稱為預設憑證。您可以在建立 TLS 接聽程式之後取代預設憑證。如需詳細資訊,請參閱 更換預設憑證

如果您在憑證清單中指定額外憑證,只有當用戶端連接時未使用伺服器名稱指示 (SNI) 通訊協定來指定主機名稱,或憑證清單中沒有相符的憑證時,才會使用預設憑證。

如果您不指定額外憑證,但需要透過單一負載平衡器來託管多個安全應用程式,您可以使用萬用字元憑證,或將每個額外網域的主體別名 (SAN) 新增至憑證。

憑證清單

TLS 接聽程式建立之後具有預設憑證和空的憑證清單。您可以選擇性將憑證新增至接聽程式的憑證清單。使用憑證清單可讓負載平衡器在相同連接埠上支援多個網域,並為每個網域提供不同的憑證。如需詳細資訊,請參閱 將憑證新增至憑證清單

負載平衡器使用支援 SNI 的智慧憑證選擇演算法。如果用戶端提供的主機名稱符合憑證清單中的單一憑證,負載平衡器會選取此憑證。如果用戶端提供的主機名稱符合憑證清單中的多個憑證,負載平衡器會選取用戶端可支援的最佳憑證。憑證選擇是根據採用下列順序的以下條件:

  • 雜湊演算法 (SHA 優於 MD5)

  • 金鑰長度 (最好是最大)

  • 有效期間

負載平衡器存取日誌項目會指出用戶端指定的主機名稱和向用戶端出示的憑證。如需詳細資訊,請參閱 存取日誌項目

憑證續約

每個憑證均附帶有效期間。您必須確保在有效期間結束之前,續約或更換負載平衡器的每個憑證。這包括預設憑證和憑證清單中的憑證。續約或更換憑證不會影響負載平衡器節點收到並且等待路由到運作狀態良好目標的傳輸中請求。續約憑證之後,新請求會使用續約的憑證。更換憑證之後,新請求會使用新的憑證。

您可以如下所示管理憑證續約和更換:

  • AWS Certificate Manager 提供和部署在您的負載平衡器上的憑證可以自動續約。ACM 會在憑證過期之前嘗試續約。如需詳細資訊,請參閱 AWS Certificate Manager 使用者指南中的受管續約

  • 如果您將憑證匯入至 ACM,則必須監控憑證的過期日期,並在憑證過期之前續約。如需詳細資訊,請參閱 AWS Certificate Manager 使用者指南中的匯入憑證

  • 如果您匯入憑證至 IAM,則必須建立新的憑證、匯入新的憑證至 ACM 或 IAM、將新憑證新增至您的負載平衡器,並從您的負載平衡器移除過期的憑證。

安全政策

建立 TLS 接聽程式時,您必須選取安全政策。您可以視需要更新安全政策。如需詳細資訊,請參閱 更新安全政策

您可以選擇前端連線所用的安全政策。對於後端連接,如果 TLS 偵聽器使用 TLS 1.3 安全策略,則ELBSecurityPolicy-TLS13-1-0-2021-06安全策略。否則即為ELBSecurityPolicy-2016-08安全策略用於後端連接。Network Load Balancer 不支援自訂安全政策。

Elastic Load Balancing 為網絡負載均衡器提供以下安全策略:

  • ELBSecurityPolicy-TLS13-1-2-2021-06*

  • ELBSecurityPolicy-TLS13-1-2-Res-2021-06

  • ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06

  • ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06

  • ELBSecurityPolicy-TLS13-1-1-2021-06

  • ELBSecurityPolicy-TLS13-1-0-2021-06

  • ELBSecurityPolicy-TLS13-1-3-2021-06

  • ELBSecurityPolicy-FS-1-2-Res-2020-10

  • ELBSecurityPolicy-FS-1-2-Res-2019-08

  • ELBSecurityPolicy-FS-1-2-2019-08

  • ELBSecurityPolicy-FS-1-1-2019-08

  • ELBSecurityPolicy-FS-2018-06

  • ELBSecurityPolicy-TLS-1-2-Ext-2018-06

  • ELBSecurityPolicy-TLS-1-2-2017-01

  • ELBSecurityPolicy-TLS-1-1-2017-01

  • ELBSecurityPolicy-2016-08**

  • ELBSecurityPolicy-TLS-1-0-2015-04

  • ELBSecurityPolicy-2015-05 (與 ELBSecurityPolicy-2016-08 相同)

* 對於 TLS 接聽程式,我們建議使用ELBSecurityPolicy-TLS13-1-2-2021-06安全政策。這是使用AWS Management Console。此安全策略包括 TLS 1.3,該策略針對安全性和性能進行了優化,並向後兼容 TLS 1.2。

**ELBSecurityPolicy-2016-08是默認安全策略,用於使用AWS CLI。

對於前向保密,您可以使用ELBSecurityPolicy-FS策略或ELBSecurityPolicy-TLS13策略。若要滿足需要停用某些 TLS 通訊協定版本的合規和安全標準,或是支援需要已淘汰加密的舊版用户端,請使用ELBSecurityPolicy-TLS政策。網際網路用戶端中只有一小部分百分比需要 TLS 版本 1.0。

您可以啟用訪問日誌以獲取有關發送到 Network Load Balancer 的 TLS 請求的信息、分析 TLS 流量模式以管理安全策略升級並排除問題。如需詳細資訊,請參閱「」存取日誌Network Load Balancer 查詢範例

TLS 1.3 安全政策

下表説明建議的政策 (ELBSecurityPolicy-TLS13-1-2-2021-06)和其他 TLS 1.3 政策。所以此ELBSecurityPolicy-前綴已從標頭列的政策名稱移除,使其相符。

安全政策 
                                            TLS13-1-2-2021-06*
                                        
                                            TLS13-1-3-2021-06
                                        
                                            TLS13-1-2-Res-2021-06
                                        
                                            TLS13-1-2-Ext2-2021-06
                                        
                                            TLS13-1-2-Ext1-2021-06
                                        
                                            TLS13-1-1-2021-06
                                        
                                            TLS13-1-0-2021-06
TLS 通訊協定

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

Protocol-TLSv1.3
TLS 加密
TLS-AES-128-GCM-SHA256
TLS-AES-256-GCM-SHA384
TLS-CHACHA20-POLY1305-SHA256

ECDHE-ECDSA-AES128-GCM-SHA256

ECDHE-RSA-AES128-GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES128-SHA

ECDHE-RSA-AES128-SHA

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ECDSA-AES256-SHA384

ECDHE-RSA-AES256-SHA384

ECDHE-RSA-AES256-SHA

ECDHE-ECDSA-AES256-SHA

AES128-GCM-SHA256

AES128-SHA256

AES128-SHA

AES256-GCM-SHA384

AES256-SHA256

AES256-SHA

若要使用 AWS CLI 來檢視負載平衡器適用的安全政策的組態,請使用 describe-ssl-policies 命令。The default policy in the AWS CLI是ELBSecurityPolicy-2016-08。要升級到 TLS 1.3 安全策略,請使用AWS CLI,請使用ssl-policy參數與建立接聽程式修改接聽程式命令。

FS 安全政策

下表説明預設政策ELBSecurityPolicy-2016-08(預設AWS CLI)和ELBSecurityPolicy-FS政策。ELBSecurityPolicy-前綴已從標頭列的政策名稱移除,使其相符。

安全政策 
                                            ELBSecurityPolicy-2016-08
                                        
                                            ELBSecurityPolicy-FS-1-2-Res-2020-10
                                        
                                            ELBSecurityPolicy-FS-1-2-Res-2019-08
                                        
                                            ELBSecurityPolicy-FS-1-2-2019-08
                                        
                                            ELBSecurityPolicy-FS-1-1-2019-08
                                        
                                            ELBSecurityPolicy-FS-2018-06
TLS 通訊協定

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

TLS 加密

ECDHE-ECDSA-AES128-GCM-SHA256

ECDHE-RSA-AES128-GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES128-SHA

ECDHE-RSA-AES128-SHA

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ECDSA-AES256-SHA384

ECDHE-RSA-AES256-SHA384

ECDHE-RSA-AES256-SHA

ECDHE-ECDSA-AES256-SHA

AES128-GCM-SHA256

AES128-SHA256

AES128-SHA

AES256-GCM-SHA384

AES256-SHA256

AES256-SHA

TLS 安全政策

下表説明預設政策ELBSecurityPolicy-2016-08(預設AWS CLI)和ELBSecurityPolicy-TLS政策。所以此ELBSecurityPolicy-前綴已從標頭列的政策名稱移除,使其相符。

安全政策 
                                            ELBSecurityPolicy-2016-08
                                        
                                            ELBSecurityPolicy-TLS-1-2-Ext-2018-06
                                        
                                            ELBSecurityPolicy-TLS-1-2-2017-01
                                        
                                            ELBSecurityPolicy-TSL-1-1-2017-01
                                        
                                            ELBSecurityPolicy-TLS-1-0-2015-04
TLS 通訊協定

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

TLS 加密

ECDHE-ECDSA-AES128-GCM-SHA256

ECDHE-RSA-AES128-GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES128-SHA

ECDHE-RSA-AES128-SHA

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ECDSA-AES256-SHA384

ECDHE-RSA-AES256-SHA384

ECDHE-RSA-AES256-SHA

ECDHE-ECDSA-AES256-SHA

AES128-GCM-SHA256

AES128-SHA256

AES128-SHA

AES256-GCM-SHA384

AES256-SHA256

AES256-SHA

DES-CBC3-SHA

*請勿使用此政策,除非您必須支援需要 DES-CBC3-SHA 加密 (一種弱式加密) 的傳統用戶端。

若要使用 AWS CLI 來檢視負載平衡器適用的安全政策的組態,請使用 describe-ssl-policies 命令。

ALPN 政策

應用程式層通訊協定交涉 (ALPN) 是在初始 TLS 信號交換您好訊息上傳送的 TLS 延伸。ALPN 使應用程式層能夠協商哪些通訊協定的使用透過安全的連接 (如 HTTP/1 和 HTTP/2) 來進行。

當用戶端起始 ALPN 連線時,負載平衡器會將用戶端 ALPN 喜好設定清單與其 ALPN 政策進行比較。如果用戶端支援來自 ALPN 政策的通訊協定,則負載平衡器會根據 ALPN 政策的喜好設定清單來建立連線。否則,負載平衡器不會使用 ALPN。

支援的 ALPN 政策

以下是支援的 ALPN 政策:

HTTP1Only

只交涉 HTTP/1.*。ALPN 喜好設定清單為 http/1.1、http/1.0。

HTTP2Only

只協商 HTTP/2。ALPN 喜好設定清單為 h2。

HTTP2Optional

偏好 HTTP/1.*,而不是 HTTP/2 (這對於 HTTP/2 測試可能有用)。ALPN 喜好設定清單包括:http/1.1、http/1.0、h2。

HTTP2Preferred

偏好 HTTP/2,而不是 HTTP/1.*。ALPN 喜好設定清單是 h2、http/1.1、http/1.0。

None

不要交涉 ALPN。此為預設值。

啟用 ALPN 連線

您可以在建立或修改 TLS 接聽程式時啟用 ALPN 連線。如需詳細資訊,請參閱 新增接聽程式更新 ALPN 政策