

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

# 檢視器和 CloudFront 之間的通訊需使用 HTTPS
<a name="using-https-viewers-to-cloudfront"></a>

您可以在 CloudFront 分發中設定一或多個快取行為以獲得檢視器與 CloudFront 之間進行通訊所需的 HTTPS。您也可以設定一或多個快取行為以允許 HTTP 和 HTTPS，以便 CloudFront 為某些物件使用 HTTPS，而非為其他物件。組態步驟取決於您在物件 URL 中使用哪個網域名稱：
+ 如果您使用 CloudFront 指派給分發的網域名稱，例如 d111111abcdef8.cloudfront.net，請您變更一或多個快取行為的 **檢視器通訊協定原則**設定，使用 HTTPS 通訊。在該組態，CloudFront 提供 SSL/TLS 憑證。

  若要使用 CloudFront 主控台來變更 **檢視器通訊協定原則**的值，請參閱本節稍後說明的步驟。

  如需如何使用 CloudFront API 變更 `ViewerProtocolPolicy` 元素值的詳細資訊，請參閱 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。
+ 如果您使用自己的網域名稱，如 example.com，則您需要變更多種 CloudFront 設定。您也需要使用 AWS Certificate Manager (ACM) 提供的 SSL/TLS 憑證，或是從第三方憑證授權機構或 IAM 憑證存放區將憑證匯入至 ACM。如需詳細資訊，請參閱 [使用備用網域名稱和 HTTPS](using-https-alternate-domain-names.md)。

**注意**  
如果您想要確保檢視器從 CloudFront 取得的物件是否加密，當 CloudFront 從您的原始伺服器取得他們時，請一律使用 CloudFront 與原始伺服器間的 HTTPS。如果您最近在 CloudFront 與原始伺服器之間從 HTTP 變更到 HTTPS，我們建議您使 CloudFront 節點中的物件失效。CloudFront 會將物件傳回到檢視器，無論檢視器使用的通訊協定 (HTTP 或 HTTPS) 與 CloudFront 用來取得物件的通訊協定是否相符。如需有關移除或替換分佈中物件的詳細資訊，請參閱[新增、移除或取代 CloudFront 分配的內容](AddRemoveReplaceObjects.md)。

## 檢視器需要 HTTPS
<a name="configure-cloudfront-HTTPS-viewers"></a>

若要在一或多個快取行為的檢視器與 CloudFront 之間使用 HTTPS，請執行下列程序。<a name="using-https-viewers-to-cloudfront-procedure"></a>

**若要將 CloudFront 設定為在檢視器與 CloudFront 之間請求使用 HTTPS**

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

1. 在 CloudFront 主控台的頂端窗格中，請選擇您要更新的分發 ID。

1. 在**行為**索引標籤中，選擇您要更新的快取行為，然後選擇**編輯**。

1. 請針對**檢視器通訊協定政策**指定下列其中一個值：  
**重新導向 HTTP 到 HTTPS**  
檢視器可以使用這兩種通訊協定。自動將 HTTP `GET` 和 `HEAD` 請求重新導向到 HTTPS 請求。CloudFront 傳回 HTTP 狀態碼 301 (永久移動) 與新的 HTTPS URL。然後檢視器使用 HTTPS URL 重新將請求提交到 CloudFront。  
如果您使用 HTTP 通過 HTTP 將 `POST`、`PUT`、`DELETE`、`OPTIONS` 或 `PATCH` 傳送到 HTTPS 快取行為和 HTTP 1.1 或更新的請求協定版本，則 CloudFront 請求將重新導向到有 HTTP 狀態碼 307 (暫時重新導向) 的 HTTPS 位置。這可確保再次將請求傳送到使用相同方法與內容承載的新位置。  
如果您通過 HTTP 將 `POST`、`PUT`、`DELETE`、`OPTIONS` 或 `PATCH` 請求傳送到具有請求通訊版本低於 HTTP 1.1 的 HTTPS，則 CloudFront 會傳回 HTTP 狀態碼 403 (禁止)。
當檢視器執行一個 HTTP 請求供其重新導向到 HTTPS 請求時，CloudFront 會收取這兩個請求的費用。針對 HTTP 請求，只會收取 CloudFront 傳回到檢視器的請求與標頭之費用。針對 HTTPS 請求，會收取該請求與原始伺服器傳回的標頭及物件之費用。  
**僅限 HTTPS**  
檢視器只能在使用 HTTPS 的情況下存取您的內容。如果檢視器傳送 HTTP 請求，而不是 HTTPS 請求，則 CloudFront 傳回 HTTP 狀態碼 403 (禁止)，且不會傳回物件。

1. 選擇**儲存變更**。

1. 對於您希望在檢視器和 CloudFront 間需要使用 HTTPS 的每一個額外快取行為，重複步驟 3 至 5。

1. 您使用生產環境中已更新的組態之前，請先確認以下項目：
   + 每個快取行為中的路徑模式僅適用於您想要檢視器使用 HTTPS 的請求。
   + 以您想要 CloudFront 評估的順序列出快取行為。如需詳細資訊，請參閱 [路徑模式](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern)。
   + 快取行為會將請求路由到正確的原始伺服器。