Application Load Balancer TLS 中的相互驗證 - Elastic Load Balancing

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

Application Load Balancer TLS 中的相互驗證

相互TLS驗證是傳輸層安全性 (TLS) 的一種變體。傳統TLS建立服務器和客戶端,其中服務器需要提供其身份給客戶端之間的安全通信。透過相互TLS,負載平衡器會在交涉時交涉用戶端與伺服器之間交涉TLS相互驗證。當您TLS與應用程式負載平衡器相互使用時,您可以簡化驗證管理並減少應用程式的負載。

透過TLS與 Application Load Balancer 相互使用,您的負載平衡器可以管理用戶端驗證,以協助確保只有受信任的用戶端與後端應用程式通訊。當您使用此功能時,Application Load Balancer 會使用來自協力廠商憑證授權單位 (CA) 的憑證,或選擇性地使用 AWS Private Certificate Authority (PCA) 進行撤銷檢查來驗證用戶端。應用 Application Load Balancer 會將用戶端憑證資訊傳遞至後端,您的應用程式可用於授權。透過TLS在應用程式負載平衡器中使用 mutual,您可以為使用已建立程式庫的憑證型實體取得內建、可擴充的受管理驗證。

應用程式TLS負載平衡器相互提供下列兩個選項來驗證 X.509v3 用戶端憑證:

備註:不支援 X.509v1 用戶端憑證。

  • 相互傳TLS遞:當您使用相互傳TLS遞模式時,Application Load Balancer 會使HTTP用標頭將整個用戶端憑證鏈傳送至目標。然後,透過使用用戶端憑證鏈結,您可以在應用程式中實作對應的負載平衡器驗證和目標授權邏輯。

  • 相互驗TLS證:當您使用相互驗TLS證模式時,Application Load Balancer 會在負載平衡器交涉TLS連線時,為用戶端執行 X.509 用戶端憑證驗證。

若要使用傳遞TLS在應用程式負載平衡器中開始使用相互作業,您只需要將接聽程式設定為接受來自用戶端的任何憑證即可。要TLS與驗證相互使用,您必須執行以下操作:

  • 建立新的信任儲存區資源。

  • 上傳您的憑證授權單位 (CA) 服務包,以及 (選擇性) 撤銷清單。

  • 將信任儲存區附加到設定為驗證用戶端憑證的監聽器。

如需與應用 step-by-step 程式負載平衡器設定相互TLS驗證模式的程序,請參閱在 Application Load Balancer TLS 上設定相互

在 Application Load Balancer TLS 上開始設定相互之前

在 Application Load Balancer TLS 上開始設定相互之前,請注意下列事項:

配額

應用程式負載平衡器包含與您 AWS 帳戶中使用的信任存放區、CA 憑證和憑證撤銷清單數量相關的某些限制。

如需詳細資訊,請參閱應用程式負載平衡器的配額

憑證需求

應用程式負載平衡器對搭配相互TLS驗證使用的憑證支援下列項目:

  • 支援的憑證:

  • 支持的公共密鑰:RSA2K — 8K 或ECDSA秒 256r1,秒

  • 支持的簽名算法:SHA256,384SHA256,512 與RSA/,384,512 與 EC/SHA256,RSASSAPSSMGF1

CA 憑證組合包

以下內容適用於憑證授權單位 (CA) 套裝軟體:

  • 應用程式負載平衡器會以批次方式上傳每個憑證授權單位 (CA) 憑證服務包。應用程式負載平衡器不支援上傳個別憑證。如果您需要新增憑證,您必須上傳憑證組合檔案。

  • 若要取代 CA 憑證套裝軟體,請使用 ModifyTrustStoreAPI.

傳遞的憑證訂單

當您使用相互TLS傳遞時,Application Load Balancer 會插入標頭,以將用戶端憑證鏈結呈現給後端目標。簡報的順序從葉證書開始,並以根證書結束。

工作階段恢

在應用程式負載平衡器使用相互TLS傳遞或驗證模式時,不支援工作階段重新開始。

HTTP標頭

應用程式負載平衡器使用相互交涉用戶端連線時,會使用X-Amzn-Mtls標頭傳送憑證資訊。TLS如需詳細資訊和範例標頭,請參閱HTTP標題和相互 TLS

CA 憑證檔案

CA 憑證檔案必須符合下列需求:

  • 憑證檔案必須使用 PEM (隱私權加強郵件) 格式。

  • 憑證內容必須包含在-----BEGIN CERTIFICATE----------END CERTIFICATE-----邊界內。

  • 註解前必須加上#字元,且不得包含任何-字元。

  • 不能有任何空行。

不接受的憑證範例 (無效):

# comments Certificate: Data: Version: 3 (0x2) Serial Number: 01 Signature Algorithm: ecdsa-with-SHA384 Issuer: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Validity Not Before: Jan 11 23:57:57 2024 GMT Not After : Jan 10 00:57:57 2029 GMT Subject: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (384 bit) pub: 00:01:02:03:04:05:06:07:08 ASN1 OID: secp384r1 NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 00:01:02:03:04:05:06:07:08 X509v3 Subject Alternative Name: URI:EXAMPLE.COM Signature Algorithm: ecdsa-with-SHA384 00:01:02:03:04:05:06:07:08 -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

接受的憑證範例 (有效):

  1. 單一憑證 (PEM—Code):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. 多個憑證 (PEM— 編碼):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

HTTP標題和相互 TLS

本節說明應用程式負載平衡器在使用相互交涉與用戶端的連線時,用來傳送憑證資訊的HTTP標頭。TLS應用程式負載平衡器使用的特定X-Amzn-Mtls標頭取決於您指定的相互TLS模式:傳遞模式或驗證模式。

如需應用程式負載平衡器支援的其他HTTP標頭的相關資訊,請參閱HTTP標頭和應用程式負載平衡器

HTTP直通模式的標題

對於TLS在直通模式下的相互作用,應用程式負載平衡器會使用下列標頭。

此標頭包含連線中顯示的整個用戶端憑證鏈結的URL編碼PEM格式,並以安全字元形+=/式顯示。

示例頭內容:

X-Amzn-Mtls-Clientcert: -----BEGIN%20CERTIFICATE-----%0AMIID<...reduced...>do0g%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIID1<...reduced...>3eZlyKA%3D%3D%0A-----END%20CERTIFICATE-----%0A

HTTP用於驗證模式的標頭

對於TLS在驗證模式下的相互作用,應用程式負載平衡器會使用下列標頭。

此標頭包含分葉憑證序號的十六進位表示法。

示例頭內容:

X-Amzn-Mtls-Clientcert-Serial-Number: 03A5B1

此標頭包含簽發者辨別名稱 (DN) 的RFC2253字串表示。

示例頭內容:

X-Amzn-Mtls-Clientcert-Issuer: CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US

此標頭包含主體辨別名稱 (DN) 的RFC2253字串表示。

示例頭內容:

X-Amzn-Mtls-Clientcert-Subject: CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US

此標頭包含notBeforenotAfter日期的 ISO86 01 格式。

示例頭內容:

X-Amzn-Mtls-Clientcert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z

此標頭包含分URL葉證書的編碼PEM格式,並+=/作為安全字符。

示例頭內容:

X-Amzn-Mtls-Clientcert-Leaf: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

應用程式負載平衡器的連線記錄

Elastic Load Balancing 提供連線記錄,可擷取傳送至應用程式負載平衡器之要求的相關屬性。連線記錄包含資訊,例如用戶端 IP 位址和連接埠、用戶端憑證資訊、連線結果,以及使用中的TLS密碼。然後,這些連線記錄可用於檢閱請求模式和其他趨勢。

若要深入瞭解連線記錄,請參閱 Application Load Balancer 的連線記錄