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

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

Network Load Balancer 的 TLS 接聽程式

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

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

網路負載平衡器不支援 TLS 重新交涉 TLS 或相互 TLS 驗證 (mTLS)。如需 mTLS 支援,請建立 TCP 接聽程式,而不建立 TLS 接聽程式。負載平衡器會依現狀傳遞請求,因此您可以在目標上實作 mTLS。

若要建立 TLS 接聽程式,請參閱新增接聽程式。如需相關示範,請參閱 Network Load Balancer 的 TLS Support 援和 Network Load Balancer 的 SNI 支援

伺服器憑證

負載平衡器需要 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 使用者指南中的伺服器憑證

重要

您不能在 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安全性原則會用於後端連線。網路負載平衡器不支援自訂安全政策。

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命令。中的預設策略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 政策