

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

# 為 CloudFront 分佈啟用原始伺服器交互 TLS
<a name="origin-enable-mtls-distributions"></a>

透過 AWS Certificate Manager 取得用戶端憑證，並將原始伺服器設定為需要交互 TLS 之後，您可以在 CloudFront 分佈上啟用原始伺服器 mTLS。

## 先決條件和要求
<a name="origin-mtls-prerequisites-requirements"></a>

在 CloudFront 分佈上啟用原始伺服器 mTLS 之前，請確定您有：
+ 存放在美國東部 （維吉尼亞北部） 區域的 AWS Certificate Manager 中的用戶端憑證 (us-east-1)
+ 原始伺服器設定為需要交互 TLS 身分驗證並驗證用戶端憑證
+ 來自公開信任憑證授權機構的原始伺服器呈現憑證
+ 修改 CloudFront 分佈的許可
+ Origin mTLS 僅適用於 Business、Premium 計劃或 Pay as go 定價計劃。

**注意**  
原始伺服器 mTLS 可以針對自訂原始伺服器 （包括在外部託管的原始伺服器 AWS) 和支援相互 TLS 的 AWS 原始伺服器進行設定，例如 Application Load Balancer 和 API Gateway。

**重要**  
原始伺服器 mTLS 不支援下列 CloudFront 功能：  
**gRPC 流量：**啟用原始伺服器 mTLS 的原始伺服器不支援 gRPC 通訊協定
**WebSocket 連線：**已啟用原始伺服器 mTLS 的原始伺服器不支援 WebSocket 通訊協定
**VPC 原始伺服器：**原始伺服器 mTLS 無法與 VPC 原始伺服器搭配使用
**使用 Lambda@Edge 的原始伺服器請求和原始伺服器回應觸發條件：**原始伺服器 mTLS 不支援原始伺服器請求和原始伺服器回應位置中的 Lambda@Edge 函數
**內嵌 POPs：**內嵌 POPs 不支援原始伺服器 mTLS

## 啟用原始伺服器 mTLS
<a name="origin-enable-mtls-per-origin"></a>

每個原始伺服器組態可讓您為相同分佈中的不同原始伺服器指定不同的用戶端憑證。當您的原始伺服器有不同的身分驗證要求時，此方法可提供最大的彈性。

### 對於新分佈 （主控台）
<a name="origin-enable-mtls-new-distributions"></a>

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

1. 選擇**建立分佈**

1. 選取定價計劃：選擇**商務**或**高級**或**隨需付費** （免費計劃不提供原始 mTLS)

1. 在原始伺服器設定區段中，選擇原始伺服器類型為其他

1. 在**原始伺服器設定**區段中，選擇**自訂原始伺服器設定**

1. 設定您的第一個原始伺服器 （網域名稱、通訊協定等）

1. 在原始伺服器組態中，尋找 **mTLS**

1. 將 **mTLS** 切換為開啟

1. 對於**用戶端憑證**，請從 AWS Certificate Manager 選取您的憑證

1. （選用） 使用自己的原始伺服器 mTLS 組態新增其他原始伺服器

1. 完成剩餘的分佈設定，然後選擇**建立分佈**

### 對於現有分佈 （主控台）
<a name="origin-enable-mtls-existing-distributions"></a>

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

1. 從分佈清單中，選取您要修改的分佈。（注意：確保您的分佈在 **Pro 或 Premium 或 Pay As You Go** 定價計劃中。 如果沒有，您必須先升級定價計劃，才能啟用原始伺服器 mTLS)

1. 選擇**原始**伺服器索引標籤

1. 選取您要設定的原始伺服器，然後選擇**編輯**

1. 在原始伺服器設定中，尋找 **mTLS**

1. 將 **mTLS** 切換為開啟

1. 對於**用戶端憑證**，請從 AWS Certificate Manager 選取您的憑證。（注意：只會列出 EKU （擴充金鑰用量） 屬性設為「TLS 用戶端身分驗證」的用戶端憑證）

1. 選擇 **Save changes (儲存變更)**

1. 視需要重複執行其他原始伺服器

## 使用 AWS CLI
<a name="origin-enable-mtls-cli"></a>

對於每個原始伺服器組態，請在每個原始伺服器的組態中指定原始伺服器 mTLS 設定：

```
{
  "Origins": {
    "Quantity": 2,
    "Items": [
      {
        "Id": "origin-1",
        "DomainName": "api.example.com",
        "CustomOriginConfig": {
          "HTTPSPort": 443,
          "OriginProtocolPolicy": "https-only"
        },
        "OriginMtlsConfig": {
          "ClientCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/cert-1"
        }
      },
      {
        "Id": "origin-2",
        "DomainName": "backend.example.com",
        "CustomOriginConfig": {
          "HTTPSPort": 443,
          "OriginProtocolPolicy": "https-only"
        },
        "OriginMtlsConfig": {
          "CertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/cert-2"
        }
      }
    ]
  }
}
```

**注意**  
如果伺服器未請求用戶端憑證，則 CloudFront 不會提供用戶端憑證，允許連線正常進行。

## 後續步驟
<a name="origin-enable-mtls-next-steps"></a>

在 CloudFront 分佈上啟用原始伺服器 mTLS 之後，您可以使用 CloudFront 存取日誌監控身分驗證事件。