

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

# 要求 CloudFront 與自訂原始伺服器之間的通訊使用 HTTPS
<a name="using-https-cloudfront-to-custom-origin"></a>

您可以要求 CloudFront 與自訂原始伺服器之間的通訊使用 HTTPS。

**注意**  
如果您的原始伺服器是設定為網站端點的 Amazon S3 儲存貯體，則無法設定 CloudFront 使用 HTTPS 來與原始伺服器通訊，因為 Amazon S3 不支援網站端點的 HTTPS。

若要在 CloudFront 與原始伺服器之間要求使用 HTTPS，請依照本主題中的程序執行下列步驟：

1. 在您的分佈中，針對原始伺服器變更其 **Origin Protocol Policy** (原始伺服器通訊協定政策) 設定。

1. 在您的原始伺服器安裝 SSL/TLS 憑證 （當您使用 Amazon S3 原始伺服器或其他特定 AWS 原始伺服器時，不需要此操作）。

**Topics**
+ [自訂原始伺服器需要 HTTPS](#using-https-cloudfront-to-origin-distribution-setting)
+ [在您的自訂原始伺服器上安裝 SSL/TLS 憑證](#using-https-cloudfront-to-origin-certificate)

## 自訂原始伺服器需要 HTTPS
<a name="using-https-cloudfront-to-origin-distribution-setting"></a>

下列程序說明如何設定 CloudFront 使用 HTTPS 與 Elastic Load Balancing 負載平衡器、Amazon EC2 執行個體或其他自訂原始伺服器原始伺服器進行通訊。如需使用 CloudFront API 更新分佈的詳細資訊，請參閱 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。<a name="using-https-cloudfront-to-custom-origin-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. 更新下列設定：  
**原始伺服器通訊協定政策**  
針對您分佈中適用的原始伺服器，變更其 **Origin Protocol Policy (原始伺服器通訊協定政策)**：  
   + **僅限 HTTPS** – CloudFront 只會使用 HTTPS 來和自訂原始伺服器進行通訊。
   + **比對檢視器** – CloudFront 會根據檢視器請求的通訊協定，使用 HTTP 或 HTTPS 與您的原始伺服器進行通訊。例如，如果您為**原始伺服器通訊協定原則**選擇**比對檢視器**，且檢視器使用 HTTPS 從 CloudFront 要求一個物件，則 CloudFront 也使用 HTTPS 將請求轉送到原始伺服器。

     只有針對 **Viewer Protocol Policy (檢視器通訊協定政策)** 指定 **Redirect HTTP to HTTPS (將 HTTP 重新導向至 HTTPS)** 或 **HTTPS Only (僅限 HTTPS)** 時，才能選擇 **Match Viewer (配合檢視器)**。

     請注意 CloudFront 僅會在檢視器使用 HTTP 和 HTTPS 協定發出請求時，快取物件一次。  
**原始伺服器 SSL 通訊協定**  
針對分佈中適用的原始伺服器，選擇 **Origin SSL Protocols (原始伺服器 SSL 通訊協定)**。SSLv3 通訊協定較不安全，因此我們建議您只有在原始伺服器不支援 TLSv1 或新版本時，選擇 SSLv3。TLSv1 交握與 SSLv3 有回溯相容與正向相容，但 TLSv1.1 和後續版本則無。當您選擇 SSLv3 時，CloudFront *只會*傳送 SSLv3 交握請求。

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

1. 對於您希望在 CloudFront 和自訂原始伺服器間需要使用 HTTPS 的每一個額外原始伺服器，重複步驟 3 至 5。

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

## 在您的自訂原始伺服器上安裝 SSL/TLS 憑證
<a name="using-https-cloudfront-to-origin-certificate"></a>

在自訂原始伺服器上，您可以從以下來源使用 SSL/TLS 憑證：
+ 如果您的原始伺服器是 Elastic Load Balancing 負載平衡器，則可以使用 AWS Certificate Manager (ACM) 提供的憑證。您也可以使用信任第三方憑證授權單位簽署的憑證並匯入 ACM。
+ 針對 Elastic Load Balancing 負載平衡器以外的原始伺服器，您必須使用信任第三方憑證授權機構 (CA) 簽署的憑證，例如 Comodo、DigiCert 或 Symantec。

從原始伺服器傳回的憑證必須包含下列其中一個網域名稱：
+ 原始伺服器的 **Origin domain** (原始伺服器網域) 欄位 (CloudFront API 中的 `DomainName` 欄位) 中的網域名稱。
+ 如果快取行為已設定為轉發 `Host` 標頭至原始伺服器，則為 `Host` 標頭中的網域名稱。

當 CloudFront 使用 HTTPS 與您的原始伺服器通訊時，CloudFront 驗證信任憑證授權機構發出的憑證。CloudFront 支援與 Mozilla 相同的憑證授權機構。如需目前的清單，請參閱 [Mozilla Included CA Certificate List](https://wiki.mozilla.org/CA/Included_Certificates)。您無法使用自我簽署憑證進行 CloudFront 和原始伺服器之間的 HTTPS 通訊。

**重要**  
如果該原始伺服器傳回過期憑證、無效憑證，或自我簽署憑證，或者，如果原始伺服器傳回順序錯誤的憑證鍊，則 CloudFront 失去 TCP 連線、傳回 HTTP 狀態碼 502 (無效的閘道) 至檢視者，並將 `X-Cache` 標頭設定為 `Error from cloudfront`。此外，若完整的憑證鏈結 (包含中繼憑證) 不存在，CloudFront 便會卸除 TCP 連線。