快取政策並轉送至原始伺服器的檢視器 mTLS 標頭 - Amazon CloudFront

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

快取政策並轉送至原始伺服器的檢視器 mTLS 標頭

使用交互 TLS 身分驗證時,CloudFront 可以從用戶端憑證擷取資訊,並將其作為 HTTP 標頭轉送到您的原始伺服器。這可讓您的原始伺服器存取憑證詳細資訊,而無需實作憑證驗證邏輯。

下列標頭可供 用來建立快取行為:

標頭名稱 Description 範例值
CloudFront-Viewer-Cert-Serial-Number 憑證序號的十六進位表示 4a:3f:5c:92:d1:e8:7b:6c
CloudFront-Viewer-Cert-Issuer RFC2253 發行者辨別名稱 (DN) 的字串表示 CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US
CloudFront-Viewer-Cert-Subject 主旨辨別名稱 (DN) 的 RFC2253 字串表示 CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US
CloudFront-Viewer-Cert-Present 1 (存在) 或 0 (不存在) 表示憑證是否存在。在必要模式下,此值一律為 1。 1
CloudFront-Viewer-Cert-Sha256 用戶端憑證的 SHA256 雜湊 01fbf94fef5569753420c349f49adbfd80af5275377816e3ab1fb371b29cb586

對於原始伺服器請求,除了上述標頭可用於快取行為之外,還提供兩個額外的標頭:

標頭名稱 Description 範例值
CloudFront-Viewer-Cert-Validity notBefore 和 notAfter date 的 ISO8601 格式 CloudFront-Viewer-Cert-Validity:NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z
CloudFront-Viewer-Cert-Pem 分葉憑證的 URL 編碼 PEM 格式 CloudFront-Viewer-Cert-Pem:-----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

設定標頭轉送

主控台

在驗證模式中,CloudFront 會自動將 CloudFront-Viewer-Cert-* 標頭新增至所有檢視器請求。若要將這些標頭轉送到您的原始伺服器:

  1. 在主清單分佈頁面中,選取已啟用檢視器 mTLS 的分佈,然後前往行為索引標籤

  2. 選取快取行為,然後選擇編輯

  3. 原始伺服器請求政策區段中,選擇建立政策或選取現有政策

  4. 確保原始伺服器請求政策中包含下列標頭:

    • CloudFront-Viewer-Cert-Serial-Number

    • CloudFront-Viewer-Cert-Issuer

    • CloudFront-Viewer-Cert-Subject

    • CloudFront-Viewer-Cert-Present

    • Cloudfront-Viewer-Cert-Sha256

    • CloudFront-Viewer-Cert-Validity

    • CloudFront-Viewer-Cert-Pem

  5. 選擇建立 (適用於新政策) 或儲存變更 (適用於現有政策)

  6. 在快取行為中選取政策並儲存變更

使用 AWS CLI

下列範例示範如何建立原始伺服器請求政策,其中包含用於驗證模式的 mTLS 標頭:

aws cloudfront create-origin-request-policy \ --origin-request-policy-config '{ "Name": "MTLSHeadersPolicy", "HeadersConfig": { "HeaderBehavior": "whitelist", "Headers": { "Quantity": 5, "Items": [ "CloudFront-Viewer-Cert-Serial-Number", "CloudFront-Viewer-Cert-Issuer", "CloudFront-Viewer-Cert-Subject", "CloudFront-Viewer-Cert-Validity", "CloudFront-Viewer-Cert-Pem" ] } }, "CookiesConfig": { "CookieBehavior": "none" }, "QueryStringsConfig": { "QueryStringBehavior": "none" } }'

標頭處理考量

使用憑證標頭時,請考慮下列最佳實務:

  • 標頭驗證:驗證原始伺服器的憑證標頭值作為額外的安全措施

  • 標頭大小限制:PEM 憑證標頭可以很大,確保您的原始伺服器可以處理它們

  • 快取考量:在快取金鑰中使用憑證標頭會增加快取分段

  • 跨來源請求:如果您的應用程式使用 CORS,則您可能需要將其設定為允許憑證標頭

後續步驟

設定標頭轉送之後,您可以使用 CloudFront Connection Functions 和 KeyValueStore 實作憑證撤銷檢查。如需實作撤銷檢查的詳細資訊,請參閱 使用 CloudFront Connection Function 和 KVS 撤銷