

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

# 使用備用網域名稱和 HTTPS
<a name="using-https-alternate-domain-names"></a>

若您想要在檔案的 URL 中使用自己的網域名稱 (例如 `https://www.example.com/image.jpg`)，並希望您的檢視器使用 HTTPS，則必須完成下列主題的步驟。(如果您在 URL 中使用預設的 CloudFront 分佈網域名稱，例如 `https://d111111abcdef8.cloudfront.net/image.jpg`，請改為遵循下列主題中的指示：[檢視器和 CloudFront 之間的通訊需使用 HTTPS](using-https-viewers-to-cloudfront.md)。)

**重要**  
當您新增憑證到分佈，CloudFront 會立即傳播憑證到其所有節點。隨著新節點變為可用，CloudFront 也會傳播憑證到這些位置。您無法限制 CloudFront 傳播憑證的節點。

**Topics**
+ [

# 選擇 CloudFront 提供 HTTPS 請求的方式
](cnames-https-dedicated-ip-or-sni.md)
+ [

# 與 CloudFront 搭配使用 SSL/TLS 憑證的要求
](cnames-and-https-requirements.md)
+ [

# 搭配 CloudFront 使用 SSL/TLS 憑證的配額 (僅限檢視器與 CloudFront 之間的 HTTPS)
](cnames-and-https-limits.md)
+ [

# 設定備用網域名稱和 HTTPS
](cnames-and-https-procedures.md)
+ [

# 判斷 SSL/TLS RSA 憑證中公有金鑰的大小
](cnames-and-https-size-of-public-key.md)
+ [

# 增加 SSL/TLS 憑證的配額
](increasing-the-limit-for-ssl-tls-certificates.md)
+ [

# 輪換 SSL/TLS 憑證
](cnames-and-https-rotate-certificates.md)
+ [

# 從自訂 SSL/TLS 憑證還原到預設 CloudFront 憑證
](cnames-and-https-revert-to-cf-certificate.md)
+ [

# 若要從具有專用 IP 位址的自訂 SSL/TLS 憑證切換到 SNI
](cnames-and-https-switch-dedicated-to-sni.md)

# 選擇 CloudFront 提供 HTTPS 請求的方式
<a name="cnames-https-dedicated-ip-or-sni"></a>

如果您想要檢視器使用 HTTPS 與使用檔案的備用網域名稱，請選擇以下其中一個選項以決定 CloudFront 如何提供 HTTPS 請求：
+ 使用[伺服器名稱指示 (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication) – 推薦
+ 在每個節點使用專用的 IP 位址

本節說明每個選項的運作方式。

## 使用 SNI 提供 HTTPS 請求 (適用於大部分用戶端)
<a name="cnames-https-sni"></a>

[伺服器名稱指示 (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication) 是 TLS 通訊協定的延伸，2010 年之後推出的瀏覽器和用戶端支援此選項。如果設定 CloudFront 使用 SNI 來提供 HTTPS 請求，則 CloudFront 會將您的替代網域名稱，與每個節點中的 IP 位址建立關聯。當檢視器提交內容的 HTTPS 請求時，DNS 會將請求路由到正確節點的 IP 位址。您網域名稱的 IP 位址在 SSL/TLS 交握溝通期間決定；IP 位址並非專用於您的分佈。

SSL/TLS 溝通發生在建立 HTTPS 連線的初期。如果 CloudFront 無法立即判斷請求是針對哪些網域，它就會失去連線。當 SNI 支援的檢視器提交內容的 HTTPS 請求時，情況如下：

1. 檢視器會自動從請求 URL 取得網域名稱，並將其新增至 TLS 用戶端 hello 訊息的 SNI 延伸模組。

1. 當 CloudFront 收到 TLS 用戶端 hello 時，它會使用 SNI 延伸模組中的網域名稱來尋找相符的 CloudFront 分佈，並傳回相關聯的 TLS 憑證。

1. 檢視器和 CloudFront 執行 SSL/TLS 交涉。

1. CloudFront 將請求的內容傳回到檢視器。

關於支援 SNI 的瀏覽器，最新的清單請參閱 Wikipedia 條目 [Server Name Indication](https://en.wikipedia.org/wiki/Server_Name_Indication) (伺服器名稱指示)。

如果您想要使用 SNI，但某些使用者的瀏覽器不支援 SNI，則您有幾個選項：
+ 設定 CloudFront 使用專用 IP 位址而不是 SNI，提供 HTTPS 請求。如需詳細資訊，請參閱 [使用專用 IP 位址提供 HTTPS 請求 (適用於所有用戶端)](#cnames-https-dedicated-ip)。
+ 使用 CloudFront SSL/TLS 憑證，不使用自訂憑證。這需要您在檔案的 URL 中，使用您分佈的 CloudFront 網域名稱，例如，`https://d111111abcdef8.cloudfront.net/logo.png`。

  如果您使用預設 CloudFront 憑證，檢視器必須支援 SSL 協定 TLSv1 或更新版本。 CloudFront 不支援具有預設 CloudFront 憑證的 SSLv3。

  您也必須將 CloudFront 使用的 SSL/TLS 憑證，從自訂憑證變更為預設的 CloudFront 憑證：
  + 如果您尚未使用分佈來分配內容，可以只變更組態。如需詳細資訊，請參閱 [更新分佈](HowToUpdateDistribution.md)。
  + 如果您已經使用分佈來分配內容，則您必須建立新的 CloudFront 分配和變更檔案的 URL，以降低或消除內容不可用的時間。如需詳細資訊，請參閱 [從自訂 SSL/TLS 憑證還原到預設 CloudFront 憑證](cnames-and-https-revert-to-cf-certificate.md)。
+ 如果您可以控制您的使用者使用哪些瀏覽器，請讓他們升級到支援 SNI 的瀏覽器。
+ 使用 HTTP，而非 HTTPS。

## 使用專用 IP 位址提供 HTTPS 請求 (適用於所有用戶端)
<a name="cnames-https-dedicated-ip"></a>

伺服器名稱指示 (SNI) 是將請求關聯至網域的一個方法。另一個方式是使用專用 IP 位址。如果您有使用者無法升級到 2010 年後推出的瀏覽器或用戶端，您可以使用專用 IP 位址來提供 HTTPS 請求。關於支援 SNI 的瀏覽器，最新的清單請參閱 Wikipedia 條目 [Server Name Indication](https://en.wikipedia.org/wiki/Server_Name_Indication) (伺服器名稱指示)。

**重要**  
如果您設定 CloudFront 使用專用 IP 位址提供 HTTPS 請求，您需要支付額外的每月費用。當您把 SSL/TLS 憑證與分佈相關聯並啟用此分佈時，即開始收費。如需 CloudFront 定價的詳細資訊，請參閱 [Amazon CloudFront 定價](https://aws.amazon.com/cloudfront/pricing)。除此之外：請參閱 [Using the Same Certificate for Multiple CloudFront Distributions](cnames-and-https-limits.md#cnames-and-https-same-certificate-multiple-distributions)。

當您設定 CloudFront 為使用專用 IP 位址來提供 HTTPS 請求，CloudFront 會將您的憑證與每個 CloudFront 邊緣節點中的專用 IP 位址建立關聯。當檢視器提交內容的 HTTPS 請求時，情況如下：

1. DNS 將請求路由到適用節點中分佈的 IP 位址。

1. 如果用戶端請求在 `ClientHello` 訊息中提供 SNI 延伸，CloudFront 會搜尋與該 SNI 相關聯的分佈。
   + 如果有相符項目，CloudFront 會使用 SSL/TLS 憑證回應請求。
   + 如果找不到相符項目，CloudFront 將改用 IP 位址識別您的分佈，並判斷要將哪些 SSL/TLS 憑證傳回到檢視器。

1. 檢視器和 CloudFront 使用 SSL/TLS 憑證執行 SSL/TLS 溝通。

1. CloudFront 將請求的內容傳回到檢視器。

這種方式適用於每個 HTTPS 請求，無論使用者使用的是瀏覽器或其他檢視器。

**注意**  
專用 IP 不是靜態 IP，而且可能會隨著時間而變更。為邊緣節點傳回的 IP 位址會從 [CloudFront 邊緣伺服器清單](LocationsOfEdgeServers.md)的 IP 位址範圍動態分配。  
CloudFront 邊緣伺服器的 IP 位址範圍可能變更。若要收到 IP 地址變更的通知，[請透過 Amazon SNS 訂閱 AWS 公有 IP 地址變更](https://aws.amazon.com/blogs/aws/subscribe-to-aws-public-ip-address-changes-via-amazon-sns/)。

## 請求使用三個或更多專用 IP SSL/TLS 憑證的許可
<a name="cnames-and-https-multiple-certificates"></a>

如果您需要三個或多個 SSL/TLS 專用的 IP 憑證與 CloudFront 永久關聯的許可 ，請執行下列程序。如需 HTTPS 請求的詳細資訊，請參閱 [選擇 CloudFront 提供 HTTPS 請求的方式](#cnames-https-dedicated-ip-or-sni)。

**注意**  
此程序用於使用 3 個或多個跨 CloudFront 分佈的專用 IP 憑證時。預設值為 2。請注意，您不可以繫結超過 1 個 SSL 憑證到分佈。  
您一次只能將一個 SSL/TLS 憑證與 CloudFront 分佈相關聯。此數字為您可以跨所有 CloudFront 分佈使用的專用 IP SSL 憑證之總和。<a name="cnames-and-https-multiple-certificates-procedure"></a>

**請求使用具有一個 CloudFront 分佈的三個或多個憑證之許可**

1. 請前往[支援中心](https://console.aws.amazon.com/support/home?#/case/create?issueType=service-limit-increase&limitType=service-code-cloudfront-distributions)並建立案例。

1. 請指出您需要許可才能使用的憑證有多少，以及說明請求中的情況。我們會儘快更新您的帳戶。

1. 請繼續下一個程序。

# 與 CloudFront 搭配使用 SSL/TLS 憑證的要求
<a name="cnames-and-https-requirements"></a>

本主題描述 SSL/TLS 憑證的需求。它們適用於以下兩種情況 (除非另有說明)：
+ 適用於檢視器和 CloudFront 之間使用 HTTPS 的憑證 
+ 適用於 CloudFront 與原始伺服器之間使用 HTTPS 的憑證

**Topics**
+ [

## 憑證發行者
](#https-requirements-certificate-issuer)
+ [

## AWS 區域 適用於 的 AWS Certificate Manager
](#https-requirements-aws-region)
+ [

## 憑證格式
](#https-requirements-certificate-format)
+ [

## 中繼憑證
](#https-requirements-intermediate-certificates)
+ [

## Key type
](#https-requirements-key-type)
+ [

## 私有金鑰
](#https-requirements-private-key)
+ [

## 許可
](#https-requirements-permissions)
+ [

## 憑證金鑰的大小
](#https-requirements-size-of-public-key)
+ [

## 支援的憑證類型
](#https-requirements-supported-types)
+ [

## 憑證過期日期和續約
](#https-requirements-cert-expiration)
+ [

## CloudFront 分佈和憑證中的網域名稱
](#https-requirements-domain-names-in-cert)
+ [

## 最低 SSL/TLS 通訊協定版本
](#https-requirements-minimum-ssl-protocol-version)
+ [

## 支援的 HTTP 版本
](#https-requirements-supported-http-versions)

## 憑證發行者
<a name="https-requirements-certificate-issuer"></a>

我們建議您使用由 [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) 出具的憑證。如需有關如何從 ACM 取得憑證的資訊，請參閱 *[AWS Certificate Manager 使用者指南](https://docs.aws.amazon.com/acm/latest/userguide/)*。若要搭配 CloudFront 分佈使用 ACM 憑證，請確定您是在美國東部 (維吉尼亞北部) 區域 (`us-east-1`) 請求 (或匯入) 憑證。

 CloudFront 支援與 Mozilla 相同的憑證授權機構 (CA)，因此如果您不使用 ACM，請使用由 [Mozilla 所含憑證授權機構憑證清單](https://wiki.mozilla.org/CA/Included_Certificates)上的 CA 發行的憑證。

您為 CloudFront 分佈指定的原始伺服器所使用的 TLS 憑證也需要從 Mozilla 包含 CA 憑證清單上的 CA 發行。

如需有關如何取得和安裝憑證的詳細資訊，請參閱 HTTP 伺服器軟體的文件和 CA 的文件。

## AWS 區域 適用於 的 AWS Certificate Manager
<a name="https-requirements-aws-region"></a>

若要在 AWS Certificate Manager (ACM) 中使用憑證來要求檢視器和 CloudFront 之間的 HTTPS，請務必在美國東部 （維吉尼亞北部） 區域 () 請求 （或匯入） 憑證`us-east-1`。

如果您想要在 CloudFront 和原始伺服器之間要求 HTTPS，而且您正在使用 Elastic Load Balancing 中的負載平衡器做為原始伺服器，您可以在任何 中請求或匯入憑證 AWS 區域。

## 憑證格式
<a name="https-requirements-certificate-format"></a>

憑證必須為 X.509 PEM 格式。如果您使用 AWS Certificate Manager，這是預設格式。

## 中繼憑證
<a name="https-requirements-intermediate-certificates"></a>

如果您使用第三方憑證授權機構 (CA)，請在列出位於 `.pem` 檔案的憑證鏈中的所有中繼憑證，從為您網域簽屬憑證的 CA 開始。一般而言，您可以在 CA 網站上找到以適當鏈結順序列出中繼和根憑證的檔案。

**重要**  
不包括下列項目：根憑證、不在信任路徑的中繼憑證，或您 CA 的公有金鑰憑證。

範例如下：

```
-----BEGIN CERTIFICATE-----
Intermediate certificate 2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Intermediate certificate 1
-----END CERTIFICATE-----
```

## Key type
<a name="https-requirements-key-type"></a>

CloudFront 支援 RSA 和公有/私有金鑰對。

CloudFront 支援使用 RSA 和 ECDSA 憑證與檢視器和原始伺服器進行 HTTPS 連線。搭配 [AWS Certificate Manager (ACM)](https://console.aws.amazon.com/acm)，您可以請求和匯入 RSA 或 ECDSA 憑證，然後將它們與 CloudFront 分佈建立關聯。

如需可在 HTTPS 連線中交涉之 CloudFront 所支援的 RSA 和 ECDSA 密碼清單，請參閱[檢視器和 CloudFront 之間支援的通訊協定和密碼](secure-connections-supported-viewer-protocols-ciphers.md)和[CloudFront 和原始伺服器之間支援的通訊協定和密碼](secure-connections-supported-ciphers-cloudfront-to-origin.md)。

## 私有金鑰
<a name="https-requirements-private-key"></a>

如果您從第三方憑證授權單位 (CA) 使用憑證，請注意以下事項：
+ 私有金鑰必須符合憑證中的公有金鑰。
+ 私有金鑰必須是 PEM 格式。
+ 無法用密碼加密私有金鑰。

如果 AWS Certificate Manager (ACM) 提供憑證，ACM 不會釋出私有金鑰。私有金鑰存放在 ACM 中，供與 ACM 整合的 AWS 服務使用。

## 許可
<a name="https-requirements-permissions"></a>

您必須具有使用和匯入 SSL/TLS 憑證的許可。如果您使用的是 AWS Certificate Manager (ACM)，我們建議您使用 AWS Identity and Access Management 許可來限制對憑證的存取。如需詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的 [Identity and Access Management](https://docs.aws.amazon.com/acm/latest/userguide/security-iam.html)。

## 憑證金鑰的大小
<a name="https-requirements-size-of-public-key"></a>

CloudFront 支援的憑證金鑰大小取決於金鑰和憑證的類型。

**對於 RSA 憑證：**  
CloudFront 支援 1024 位元、2048 位元、3072 位元和 4096 位元 RSA 金鑰。與 CloudFront 搭配使用的 RSA 憑證，其金鑰長度上限為 4096 位元。  
 請注意，ACM 發行的 RSA 憑證最多擁有 2048 位元金鑰。若要使用 3072 位元或 4096 位元的 RSA 憑證，您需要從外部取得憑證並將其匯入 ACM，之後即可和 CloudFront 搭配使用。  
如需有關如何判斷 RSA 金鑰大小的詳細資訊，請參閱[判斷 SSL/TLS RSA 憑證中公有金鑰的大小](cnames-and-https-size-of-public-key.md)。

**對於 ECDSA 憑證：**  
CloudFront 支援 256 位元金鑰。若要在 ACM 中使用 ECDSA 憑證，以便在檢視器和 CloudFront 之間請求使用 HTTPS，請使用 prime256v1 橢圓曲線。

## 支援的憑證類型
<a name="https-requirements-supported-types"></a>

CloudFront 支援由受信任憑證授權單位發行的所有憑證類型。

## 憑證過期日期和續約
<a name="https-requirements-cert-expiration"></a>

如果您使用從第三方憑證授權機構 (CA) 取得的憑證，則必須監控憑證過期日期，並在憑證過期之前續約您匯入至 AWS Certificate Manager (ACM) 或上傳至 AWS Identity and Access Management 憑證存放區的憑證。

**重要**  
為了避免憑證過期問題，請在目前憑證的 `NotAfter` 值之前至少 24 小時續約或重新匯入憑證。如果您的憑證在 24 小時內過期，請向 ACM 請求新憑證或將新憑證匯入 ACM。接著，將新憑證與 CloudFront 分佈建立關聯。  
當您的憑證續約或重新匯入正在進行時，CloudFront 可能會繼續使用先前的憑證。這是一個非同步程序，最多可能需要 24 小時的時間，CloudFront 才會顯示您的變更。

如果使用 ACM 提供的憑證，ACM 會為您管理憑證續約。如需詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的[受管續約](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)。

## CloudFront 分佈和憑證中的網域名稱
<a name="https-requirements-domain-names-in-cert"></a>

當您使用自訂原始伺服器時，原始伺服器上的 SSL/TLS 憑證包含 **Common Name** (通用名稱) 欄位中的網域名稱，且在 **Subject Alternative Names** (主體別名) 欄位中可能還有更多網域名稱。(CloudFront 在憑證網域名稱中支援萬用字元)。

憑證中其中一個網域名稱必須符合您指定給原始網域名稱的網域名稱。如果沒有相符的網域名稱，CloudFront 會將 HTTP 狀態碼 `502 (Bad Gateway)` 傳回到檢視器。

**重要**  
如果將替代網域名稱新增到分佈，CloudFront 會檢查替代網域名稱是否涵蓋在您所連線的憑證範圍內。憑證必須涵蓋憑證主體別名 (SAN) 欄位中的備用網域名稱。這表示 SAN 欄位必須包含完全相符的替代網域名稱，或在您要新增之替代網域名稱的相同層級包含萬用字元。  
如需詳細資訊，請參閱 [使用備用網域名稱的需求](CNAMEs.md#alternate-domain-names-requirements)。

## 最低 SSL/TLS 通訊協定版本
<a name="https-requirements-minimum-ssl-protocol-version"></a>

如果使用專用 IP 位址，請透過選擇安全政策來設定檢視器與 CloudFront 之間連線的最低 SSL/TLS 通訊協定版本。

如需詳細資訊，請參閱 [所有分佈設定參考](distribution-web-values-specify.md) 主題中的 [安全政策 (最低 SSL/TLS 版本)](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)。

## 支援的 HTTP 版本
<a name="https-requirements-supported-http-versions"></a>

如果您把一個憑證與多個 CloudFront 分發相關聯，則所有與憑證關聯的分發必須使用相同 [支援的 HTTP 版本](DownloadDistValuesGeneral.md#DownloadDistValuesSupportedHTTPVersions) 的選項。您在建立或更新 CloudFront 分佈時請指定此選項。

# 搭配 CloudFront 使用 SSL/TLS 憑證的配額 (僅限檢視器與 CloudFront 之間的 HTTPS)
<a name="cnames-and-https-limits"></a>

請注意以下將 SSL/TLS 憑證與 CloudFront 搭配使用的配額。這些配額僅適用於您使用匯入 ACM 的 AWS Certificate Manager (ACM) 佈建的 SSL/TLS 憑證，或上傳至 IAM 憑證存放區以在檢視器和 CloudFront 之間進行 HTTPS 通訊。

如需詳細資訊，請參閱[增加 SSL/TLS 憑證的配額](increasing-the-limit-for-ssl-tls-certificates.md)。

**每個 CloudFront 分佈的憑證數目上限**  
您可以把一個 SSL/TLS 憑證的上限數量與每個 CloudFront 分佈相關聯。

**您可以匯入 ACM 或上傳至 IAM 憑證存放區的憑證上限數量**  
如果您從第三方 CA 取得 SSL/TLS 憑證，您必須在以下其中一個位置存放憑證：  
+ **AWS Certificate Manager** – 如需 ACM 憑證數量的目前配額，請參閱 *AWS Certificate Manager 使用者指南*中的[配額](https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html)。列出的配額是包含您使用 ACM 佈建的憑證與匯入 ACM 的憑證之總和。
+ **IAM 憑證存放**區 – 如需您可以上傳到 AWS 帳戶 IAM 憑證存放區之憑證數量的目前配額 （先前稱為限制），請參閱《IAM **[使用者指南》中的 IAM 和 STS 限制](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html)。您可以在 Service Quotas 主控台請求提高配額。

**每個 AWS 帳戶的憑證數量上限 （僅限專用 IP 地址）**  
如果您想要使用專用 IP 位址提供 HTTPS 請求，請注意以下事項：  
+ 根據預設，CloudFront 會授予您在 AWS 帳戶中使用兩個憑證的許可，一個用於日常使用，另一個用於需要輪換多個分佈的憑證。
+ 如果您需要兩個以上的自訂 SSL/TLS 憑證 AWS ，您可以在 Service Quotas 主控台中請求更高的配額。

**將相同的憑證用於不同 AWS 帳戶建立的 CloudFront 分佈**  
如果您使用的是第三方 CA，而且想要搭配使用不同 AWS 帳戶建立的多個 CloudFront 分佈使用相同的憑證，您必須將憑證匯入 ACM，或為每個 AWS 帳戶將其上傳至 IAM 憑證存放區一次。  
如果您使用 ACM 提供的憑證，則不能配置 CloudFront 使用不同 AWS 帳戶建立的憑證。

**針對 CloudFront 和其他服務使用相同的憑證 AWS **  
如果您從信任的憑證授權機構購買憑證，例如 Comodo、DigiCert 或 Symantec，您可以將相同的憑證用於 CloudFront 和其他 AWS 服務。如果將憑證匯入到 ACM，則只需要匯入一次，即可將憑證用於多個 AWS 服務。  
如果您使用 ACM 提供的憑證，則在 ACM 中存放憑證。

**將相同的憑證用於多個 CloudFront 分佈**  
您可以對用來提供 HTTPS 請求的任何或所有 CloudFront 分佈使用相同的憑證。注意下列事項：  
+ 您可以使用相同的憑證提供使用專用 IP 位址的請求，與提供使用 SNI 的請求。
+ 您僅能把一個 SSL/TLS 憑證與每個 &CF; 分佈相關聯。
+ 每個分佈必須包含一或多個也出現在憑證中 **Common Name (通用名稱)** 欄位或 **Subject Alternative Names (主體別名)** 欄位的備用網域名稱。
+ 如果您使用專用 IP 位址提供 HTTPS 請求，且透過使用相同的 AWS 帳戶建立所有分佈，則可以藉由使用適用於所有分佈的相同憑證大幅降低您的成本。CloudFront 收取每個憑證的費用，而不是每個分佈。

  例如，假設您使用相同的 AWS 帳戶來建立三個分佈，並且針對所有三個分佈使用相同的憑證。您只需支付使用專用 IP 位址的費用一次。

  不過，如果您使用專用 IP 位址提供 HTTPS 請求，且在不同的 AWS 帳戶中使用相同的憑證建立 CloudFront 分佈，則需支付每個帳戶使用專用 IP 位址的費用。例如，如果您使用三個不同的 AWS 帳戶來建立三個分佈，並且針對所有三個分佈使用相同的憑證，則每個帳戶都會支付使用專用 IP 地址的完整費用。

# 設定備用網域名稱和 HTTPS
<a name="cnames-and-https-procedures"></a>

若要使用URL 中適用於檔案的備用網域名稱，與在檢視器和 CloudFront 之間使用 HTTPS，請執行適用的程序。

**Topics**
+ [

## 取得 SSL/TLS 憑證
](#cnames-and-https-getting-certificates)
+ [

## 匯入 SSL/TLS 憑證
](#cnames-and-https-uploading-certificates)
+ [

## 更新您的 CloudFront 分佈
](#cnames-and-https-updating-cloudfront)

## 取得 SSL/TLS 憑證
<a name="cnames-and-https-getting-certificates"></a>

如果您尚未擁有憑證，請取得一個 SSL/TLS 憑證。如需詳細資訊，請參閱適用的文件：
+ 若要使用 AWS Certificate Manager (ACM) 提供的憑證，請參閱 [AWS Certificate Manager 使用者指南](https://docs.aws.amazon.com/acm/latest/userguide/)。然後跳至 [更新您的 CloudFront 分佈](#cnames-and-https-updating-cloudfront)。
**注意**  
我們建議您使用 ACM 在 AWS 受管資源上佈建、管理和部署 SSL/TLS 憑證。您必須在美國東部 (維吉尼亞北部) 區域請求 ACM 憑證。
+ 若要從第三方憑證授權單位 (CA) 取得憑證，請參閱憑證授權單位提供的文件。當您有憑證時，請繼續進行下一個程序。

## 匯入 SSL/TLS 憑證
<a name="cnames-and-https-uploading-certificates"></a>

如果您從第三方 CA 取得憑證，請將憑證匯入到 ACM 或上傳至 IAM 憑證存放區：

**ACM (推薦)**  
ACM 讓您從 ACM 主控台以及透過程式設計方式匯入第三方憑證。如需將憑證匯入 ACM 的詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的[將憑證匯入 AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)。您必須在美國東部 (維吉尼亞北部) 區域匯入憑證。

**IAM 憑證存放區**  
（不建議） 使用以下 AWS CLI 命令將您的第三方憑證上傳至 IAM 憑證存放區。  

```
aws iam upload-server-certificate \
        --server-certificate-name CertificateName \
        --certificate-body file://public_key_certificate_file \
        --private-key file://privatekey.pem \
        --certificate-chain file://certificate_chain_file \
        --path /cloudfront/path/
```
注意下列事項：  
+ **AWS 帳戶** – 您必須使用用來建立 CloudFront 分佈的相同 AWS 帳戶，將憑證上傳至 IAM 憑證存放區。
+ **--path 參數** – 當您將憑證上傳到 IAM 時，`--path` 參數 (憑證路徑) 的值必須以 `/cloudfront/` 開頭，例如 `/cloudfront/production/` 或 `/cloudfront/test/`。路徑必須以 / 結尾。
+ **現有的憑證** – 您必須指定 `--server-certificate-name` 和 `--path` 參數的值 (不同於與現有憑證相關聯的值)。
+ **使用 CloudFront 主控台** – 您在 中為 `--server-certificate-name` 參數指定的值 AWS CLI，例如 `myServerCertificate`，會出現在 CloudFront 主控台的 **SSL 憑證**清單中。
+ **使用 CloudFront API** – 請記下 AWS CLI 傳回的英數字元字串，例如 `AS1A2M3P4L5E67SIIXR3J`。這是您會在 `IAMCertificateId` 元素中指定的值。您不需要也由 CLI 傳回的 IAM ARN。
如需 的詳細資訊 AWS CLI，請參閱 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)和 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/)。

## 更新您的 CloudFront 分佈
<a name="cnames-and-https-updating-cloudfront"></a>

若要更新分佈的設定，請執行以下程序：<a name="cnames-and-https-updating-cloudfront-procedure"></a>

**設定適用於備用網域名稱的 CloudFront 分佈**

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

1. 選擇您希望更新的分佈 ID。

1. 在 **General (一般)** 索引標籤上，選擇 **Edit (編輯)**。

1. 更新下列的值：  
**備用網域名稱 (CNAME)**  
選擇**新增項目**，以新增適用的備用網域名稱。使用逗號區隔網域名稱，或在新的一行輸入每個網域名稱。  
**自訂 SSL 憑證**  
從下拉式清單中選取憑證。  
此處列出高達 100 個憑證。如果您有超過 100 個憑證，而您沒有看到想要新增的憑證，可以在欄位中輸入憑證 ARN 來選取。  
如果您將憑證上傳至 IAM 憑證存放區但它沒有被列出，而您無法在欄位中輸入名稱來選取，請檢閱此程序 [匯入 SSL/TLS 憑證](#cnames-and-https-uploading-certificates) 以確認您是否正確上傳憑證。  
在您把 SSL/TLS 憑證與 CloudFront 分佈相關聯後，請不要從 ACM 或 IAM 憑證存放區刪除憑證，直到您從所有分佈移除憑證且部署所有分佈。

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

1. 將 CloudFront 設定為在檢視器和 CloudFront 之間請求使用 HTTPS：

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

   1. 請針對 **Viewer Protocol Policy** (檢視器通訊協定政策) 指定下列其中一個值：  
**重新引導 HTTP 到 HTTPS**  
檢視器可以使用這兩種通訊協定，但會自動重新引導 HTTP 請求到 HTTPS 請求。CloudFront 會傳回 HTTP 狀態碼 `301 (Moved Permanently)` 以及新的 HTTPS URL。然後檢視器使用 HTTPS URL 重新將請求提交到 CloudFront。  
CloudFront 不會從 HTTP 將 `DELETE`、`OPTIONS`、`PATCH`、`POST` 或 `PUT` 請求重新引導到 HTTPS。如果將快取行為設定為重新引導至 HTTPS，則 CloudFront 會以 HTTP 狀態碼 `DELETE`，來回應此快取行為的 HTTP `OPTIONS`、`PATCH`、`POST`、`PUT` 或 `403 (Forbidden)` 請求。
當檢視器執行一個 HTTP 請求供其重新引導到 HTTPS 請求時，CloudFront 會收取這兩個請求的費用。針對 HTTP 請求，只會收取 CloudFront 傳回到檢視器的請求與標頭之費用。針對 HTTPS 請求，會收取該請求與標頭及原始伺服器傳回的檔案之費用。  
**僅限 HTTPS**  
檢視器只能在使用 HTTPS 的情況下存取您的內容。如果檢視器傳送 HTTP 請求，而不是 HTTPS 請求，則 CloudFront 會傳回 HTTP 狀態碼 `403 (Forbidden)`，且不會傳回檔案。

   1. 請選擇 **Yes, Edit (是，編輯)**。

   1. 為每個額外快取行為，供您要在檢視器與 CloudFront 之間使用 HTTPS，請重複執行步驟 a 到 c。

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

# 判斷 SSL/TLS RSA 憑證中公有金鑰的大小
<a name="cnames-and-https-size-of-public-key"></a>

如果使用 CloudFront 備用網域名稱和 HTTPS，SSL/TLS RSA 憑證中的公有金鑰大小上限為 4096 位元。(這是金鑰大小，而不是公有金鑰中字元的數量)。如果您使用 AWS Certificate Manager 做為憑證，雖然 ACM 支援較大的 RSA 金鑰，但無法搭配 CloudFront 使用較大的金鑰。

您可以透過執行以下 OpenSSL 命令判斷 RSA 公有金鑰的大小：

```
openssl x509 -in path and filename of SSL/TLS certificate -text -noout 
```

其中：
+ `-in` 會指定 SSL/TLS RSA 憑證的路徑和檔案名稱。
+ `-text` 會讓 OpenSSL 以位元為單位顯示 RSA 公有金鑰的長度。
+ `-noout` 避免 OpenSSL 顯示公有金鑰。

輸出範例：

```
Public-Key: (2048 bit)
```

# 增加 SSL/TLS 憑證的配額
<a name="increasing-the-limit-for-ssl-tls-certificates"></a>

您可以匯入 AWS Certificate Manager (ACM) 或上傳到 AWS Identity and Access Management (IAM) 的 SSL/TLS 憑證數量有配額。當您將 CloudFront 設定為使用專用 IP 地址來提供 HTTPS 請求 AWS 帳戶 時，您可以搭配 使用的 SSL/TLS 憑證數量也有配額。不過，您可以請求提高配額。

**Topics**
+ [

## 增加匯入 ACM 的憑證配額
](#certificates-to-import-into-acm)
+ [

## 增加上傳到 IAM 的憑證配額
](#certificates-to-upload-into-iam)
+ [

## 增加與專用 IP 位址搭配使用的憑證配額
](#certificates-using-dedicated-ip-address)

## 增加匯入 ACM 的憑證配額
<a name="certificates-to-import-into-acm"></a>

如需可匯入 ACM 之憑證數量的配額，請參閱 *AWS Certificate Manager 使用者指南*中的[配額](https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html)。

若要請求提升配額，您可以使用 Service Quotas 主控台。如需詳細資訊，請參閱「Service Quotas 使用者指南」**中的[請求提高配額](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

## 增加上傳到 IAM 的憑證配額
<a name="certificates-to-upload-into-iam"></a>

如需您可以上傳到 IAM 的憑證數量配額 (先前稱為限制)，請參閱 *IAM 使用者指南*中的 [IAM 和 STS 限制](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html)。

若要請求提升配額，您可以使用 Service Quotas 主控台。如需詳細資訊，請參閱「Service Quotas 使用者指南」**中的[請求提高配額](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

## 增加與專用 IP 位址搭配使用的憑證配額
<a name="certificates-using-dedicated-ip-address"></a>

如需使用專用 IP 地址提供 HTTPS 請求 AWS 帳戶 時，每個憑證可使用的 SSL 憑證數量配額，請參閱 [SSL 憑證的配額](cloudfront-limits.md#limits-ssl-certificates)。

若要請求提升配額，您可以使用 Service Quotas 主控台。如需詳細資訊，請參閱「Service Quotas 使用者指南」**中的[請求提高配額](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

# 輪換 SSL/TLS 憑證
<a name="cnames-and-https-rotate-certificates"></a>

當您的 SSL/TLS 憑證即將過期時，您需要輪換憑證以確保分佈的安全性，並避免檢視器的服務中斷。您可用下列方式輪換憑證：
+ 對於 AWS Certificate Manager (ACM) 提供的 SSL/TLS 憑證，您不需要輪換它們。ACM 會*自動*為您管理憑證續約。如需詳細資訊，請參閱《*AWS Certificate Manager 使用者指南*》中的「[受管憑證續約](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html)」。
+ 如果您使用第三方憑證認證機構，而且已將憑證匯入 ACM (建議) 或上傳到 IAM 憑證存放區，則必須偶爾使用另一個憑證來替換某個憑證。

  

**重要**  
ACM 不會為您從第三方憑證認證機構取得並匯入到 ACM 的憑證管理憑證續約。
如果您設定 CloudFront 使用專用 IP 位址提供 HTTPS 請求，在更換憑證時，則可能需要支付額外按比例計算的費用來使用一或多個額外的憑證。我們建議您更新分佈，把額外的費用降到最低。

## 輪換 SSL/TLS 憑證
<a name="rotate-ssl-tls-certificate"></a>

若要輪換憑證，請執行以下程序。在您更換憑證的同時以及處理完成後，檢視器皆能持續存取您的內容。<a name="rotate-ssl-tls-certificates-proc"></a>

**若要輪換 SSL/TLS 憑證**

1. [增加 SSL/TLS 憑證的配額](increasing-the-limit-for-ssl-tls-certificates.md) 判斷您是否需要使用更多 SSL 憑證的許可。若是如此，請請求許可並等到授予許可時，再繼續步驟 2。

1. 將新憑證匯入到 ACM 或上傳至 IAM。如需詳細資訊，請參閱 *Amazon CloudFront 開發人員指南*中的[匯入 SSL/TLS 憑證](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-procedures.html#cnames-and-https-uploading-certificates)。

1. (僅限 IAM 憑證) 一次更新一個分佈，以使用新的憑證。如需詳細資訊，請參閱[更新分佈](HowToUpdateDistribution.md)。

1. (選用) 從 ACM 或 IAM 刪除先前的憑證。
**重要**  
請勿刪除 SSL/TLS 憑證，直到您將其從所有分佈中移除，並直到您已更新的分佈已變更為 `Deployed`。

# 從自訂 SSL/TLS 憑證還原到預設 CloudFront 憑證
<a name="cnames-and-https-revert-to-cf-certificate"></a>

如果您已將 CloudFront 設定為在檢視器和 CloudFront 之間使用 HTTPS，且已將 CloudFront 設定為使用自訂 SSL/TLS 憑證，則可以變更設定以使用預設 CloudFront SSL/TLS 憑證。此程序取決於您是否已使用分佈來分配您的內容：
+ 如果您尚未使用分佈來分配內容，可以只變更組態。如需詳細資訊，請參閱 [更新分佈](HowToUpdateDistribution.md)。
+ 如果您已經使用分佈來分配內容，則您必須建立新的 CloudFront 分配和變更檔案的 URL，以降低或消除內容不可用的時間。若要執行此操作，請執行以下程序。

## 還原為預設 CloudFront 憑證
<a name="revert-default-cloudfront-certificate"></a>

以下程序顯示如何從自訂 SSL/TLS 憑證還為到預設 CloudFront 憑證。<a name="cnames-and-https-revert-to-cf-certificate-proc"></a>

**還原為預設 CloudFront 憑證**

1. 使用所需的組態建立新的 CloudFront 分佈。針對 **SSL 憑證**，選擇 **預設 CloudFront 憑證 (\$1.cloudfront.net)**。

   如需詳細資訊，請參閱[建立分發](distribution-web-creating-console.md)。

1. 針對您使用 CloudFront 所分佈的檔案，請更新應用程式中的 URL，以使用 CloudFront 指派給新分佈的網域名稱。例如，請將 `https://www.example.com/images/logo.png` 變更為 `https://d111111abcdef8.cloudfront.net/images/logo.png`。

1. 刪除與自訂 SSL/TLS 憑證相關聯的分佈，或是更新分佈，將 **SSL 憑證**的值變更為**預設 CloudFront 憑證 (\$1.cloudfront.net)**。如需詳細資訊，請參閱[更新分佈](HowToUpdateDistribution.md)。
**重要**  
在您完成此步驟之前， AWS 會繼續向您收取使用自訂 SSL/TLS 憑證的費用。

1. (選用) 刪除您的自訂 SSL/TLS 憑證。

   1. 執行 AWS CLI 命令`list-server-certificates`以取得您要刪除之憑證的憑證 ID。如需詳細資訊，請參閱 *AWS CLI 命令參考*中的 [list-server-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-server-certificates.html)。

   1. 執行 AWS CLI 命令`delete-server-certificate`來刪除憑證。如需詳細資訊，請參閱 *AWS CLI 命令參考*中的 [delete-server-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-server-certificate.html)。

# 若要從具有專用 IP 位址的自訂 SSL/TLS 憑證切換到 SNI
<a name="cnames-and-https-switch-dedicated-to-sni"></a>

如果您設定 CloudFront 使用有專用 IP 位址的自訂 SSL/TLS 憑證，您可以切換為使用有 SNI 的自訂 SSL/TLS 憑證，並消除與專用 IP 位址關聯的費用。

**重要**  
對 CloudFront 組態的此更新對支援 SNI 的檢視器沒有任何影響。檢視器可以在變更之前和之後存取您的內容，也可以在變更傳播到 CloudFront 節點位置時存取內容。不支援 SNI 的檢視器在變更之後不能存取您的內容。如需詳細資訊，請參閱[選擇 CloudFront 提供 HTTPS 請求的方式](cnames-https-dedicated-ip-or-sni.md)。

## 從自訂憑證切換至 SNI
<a name="cloudfront-switch-custom-cert-sni"></a>

下列程序顯示如何從具有專用 IP 位址的自訂 SSL/TLS 憑證切換到 SNI。<a name="cnames-and-https-switch-dedicated-to-sni-proc"></a>

**若要從具有專用 IP 位址的自訂 SSL/TLS 憑證切換到 SNI**

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

1. 選擇欲檢閱或更新的分佈 ID。

1. 請選擇 **Distribution Settings (分佈設定)**。

1. 在 **General (一般)** 索引標籤上，選擇 **Edit (編輯)**。

1. 在**自訂 SSL 憑證 – *選用***下，取消選取**舊版用戶端支援**。

1. 請選擇 **Yes, Edit (是，編輯)**。