View a markdown version of this page

為 CloudFront 分佈啟用交互 TLS - Amazon CloudFront

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

為 CloudFront 分佈啟用交互 TLS

先決條件和要求

CloudFront 的交互 TLS 驗證模式要求所有用戶端在 TLS 交握期間呈現有效的憑證,並拒絕沒有有效憑證的連線。在 CloudFront 分佈上啟用交互 TLS 之前,請確定您有:

  • 使用憑證授權機構憑證建立信任存放區

  • 將信任存放區與您的 CloudFront 分佈建立關聯

  • 確保所有分佈快取行為都使用僅限 HTTPS 的檢視器通訊協定政策

  • 確保您的分佈使用 HTTP/2 (預設設定,HTTP/3 不支援檢視器 mTLS)

注意

相互 TLS 身分驗證需要檢視器和 CloudFront 之間的 HTTPS 連線。您無法在具有支援 HTTP 連線之任何快取行為的分佈上啟用 mTLS。

啟用交互 TLS (主控台)

對於新分佈

在 CloudFront 主控台中建立新分佈的過程中,無法設定檢視器 mTLS。首先透過任何方式 (主控台、CLI、API) 建立分佈,然後編輯分佈設定,根據下列現有的分佈說明啟用檢視器 mTLS。

對於現有分佈

  1. 登入 AWS 管理主控台 ,並在 開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home。

  2. 從分佈清單中,選取您要修改的分佈。

  3. 確定針對所有快取行為,檢視器通訊協定政策設定為僅將 HTTP 重新導向至 HTTPS 或 HTTPS。(您可以選擇快取行為索引標籤,以使用 HTTP 通訊協定政策檢視和更新任何快取行為。)

  4. 選擇一般索引標籤。

  5. 在 Settings (設定) 區段中,選擇 Edit (編輯)。

  6. 在連線區段中,尋找檢視器交互身分驗證 (mTLS)。

  7. 將啟用交互身分驗證切換為開啟。

  8. 對於用戶端憑證驗證模式,選取必要 (所有用戶端都必須顯示憑證) 或選用 (用戶端可以選擇性顯示憑證)。

  9. 針對信任存放區,選取您先前建立的信任存放區。

  10. (選用) 如果您希望 CloudFront 在 TLS 交握期間將 CA 名稱傳送給用戶端,請切換公告信任存放區 CA 名稱。

  11. (選用) 如果您想要允許具有過期憑證的連線,請切換忽略憑證過期日期。

  12. 選擇儲存變更。

啟用交互 TLS (AWS CLI)

對於新分佈

下列範例示範如何建立包含 mTLS 設定的分佈組態檔案 (distribution-config.json):

{ "CallerReference": "cli-example-1", "Origins": { "Quantity": 1, "Items": [ { "Id": "my-origin", "DomainName": "example.com", "CustomOriginConfig": { "HTTPPort": 80, "HTTPSPort": 443, "OriginProtocolPolicy": "https-only" } } ] }, "DefaultCacheBehavior": { "TargetOriginId": "my-origin", "ViewerProtocolPolicy": "https-only", "MinTTL": 0, "ForwardedValues": { "QueryString": false, "Cookies": { "Forward": "none" } } }, "ViewerCertificate": { "CloudFrontDefaultCertificate": true }, "ViewerMtlsConfig": { "Mode": "required", "TrustStoreConfig": { "TrustStoreId": {TRUST_STORE_ID}, "AdvertiseTrustStoreCaNames": true, "IgnoreCertificateExpiry": true } }, "Enabled": true }

使用下列範例命令建立已啟用 mTLS 的分佈:

aws cloudfront create-distribution --distribution-config file://distribution-config.json

對於現有分佈

使用下列範例命令取得目前的分佈組態:

aws cloudfront get-distribution-config --id E1A2B3C4D5E6F7 --output json > dist-config.json

編輯 檔案以新增 mTLS 設定。將下列範例區段新增至您的分佈組態:

"ViewerMtlsConfig": { "Mode": "required", "TrustStoreConfig": { "TrustStoreId": {TRUST_STORE_ID}, "AdvertiseTrustStoreCaNames": true, "IgnoreCertificateExpiry": true } }

從檔案移除 ETag 欄位,但分別儲存其值。

使用下列範例命令,使用新組態更新分佈:

aws cloudfront update-distribution \ --id E1A2B3C4D5E6F7 \ --if-match YOUR-ETAG-VALUE \ --distribution-config file://dist-config.json

檢視器通訊協定政策

使用交互 TLS 時,所有分佈快取行為都必須使用僅限 HTTPS 的檢視器通訊協定政策進行設定:

  • 將 HTTP 重新導向至 HTTPS - 在執行憑證驗證之前將 HTTP 請求重新導向至 HTTPS。

  • 僅限 HTTPS - 僅接受 HTTPS 請求並執行憑證驗證。

注意

交互 TLS 不支援 HTTP 和 HTTPS 檢視器通訊協定政策,因為 HTTP 連線無法執行憑證驗證。

後續步驟

在 CloudFront 分佈上啟用檢視器 TLS 之後,您可以關聯連線函數來實作自訂憑證驗證邏輯。Connection Functions 可讓您使用自訂驗證規則、憑證撤銷檢查和記錄來擴展內建 mTLS 身分驗證功能。如需建立和關聯連線函數的詳細資訊,請參閱 關聯 CloudFront 連線函數。