

# CloudFront とカスタムオリジンの間の通信に HTTPS を要求する
<a name="using-https-cloudfront-to-custom-origin"></a>

CloudFront とカスタムオリジン間の通信で HTTPS を必須にすることができます。

**注記**  
オリジンがウェブサイトエンドポイントとして設定されている Amazon S3 バケットである場合、Amazon S3 がウェブサイトエンドポイントに対して HTTPS をサポートしていないため、オリジンに HTTPS を使用するように CloudFront を設定することはできません。

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>

次の手順では、Elastic Load Balancing ロードバランサー、Amazon EC2 インスタンス、または別のカスタムオリジンとの通信で HTTPS を使用するよう CloudFront を設定する方法について説明します。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 とカスタムオリジンの間で HTTPS を必須にするよう CloudFront を設定するには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. CloudFront コンソールの上部のペインで、更新するディストリビューションの ID を選択します。

1. **[動作]**] タブで、更新するオリジンを選択し、**[編集]** を選択します。

1. 次の設定を更新します。  
**オリジンプロトコルポリシー**  
ディストリビューションの該当するオリジンで、[**Origin Protocol Policy**] を変更します。  
   + [**HTTPS Only (HTTPS のみ)**] - CloudFront は HTTPS のみを使ってカスタムオリジンと通信します。
   + [**Match Viewer (ビューワーに合わせる)**] - CloudFront は、ビューワーのリクエストのプロトコルに応じて HTTP または HTTPS を使用し、カスタムオリジンと通信します。例えば、[**オリジンプロトコルポリシー**] の [**Match Viewer (ビューワーに合わせる)**] を選択し、ビューワーで HTTPS を使用して CloudFront からオブジェクトをリクエストする場合は、CloudFront でも HTTPS を使用してリクエストをオリジンに転送します。

     [**Viewer Protocol Policy**] で [**Redirect HTTP to HTTPS**] または [**HTTPS Only**] を指定する場合は、[**Match Viewer**] のみを選択します。

     ビューワーが HTTP と HTTPS の両方のプロトコルを使用してリクエストを行った場合も、CloudFront がオブジェクトをキャッシュするのは 1 回だけです。  
**オリジン SSL プロトコル**  
ディストリビューションの該当するオリジンで [**Origin SSL Protocols**] を選択します。SSLv3 プロトコルは安全性が低いため、オリジンが TLSv1 以降をサポートしていない場合にのみ SSLv3 を選択することをお勧めします。TLSv1 ハンドシェイクは、SSLv3 との下位互換性と上位互換性の両方がありますが、TLSv1.1 以降は対象外です。SSLv3 を選択すると、CloudFront は SSLv3 ハンドシェイクリクエスト*のみ*を送信します。

1. **[Save changes]** (変更の保存) をクリックします。

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 など) によって署名された証明書を使用する必要があります。

オリジンから返される証明書には、次のいずれかのドメイン名が含まれている必要があります。
+ オリジンの**オリジンドメイン**フィールド (CloudFront API の `DomainName` フィールド) のドメイン名。
+ キャッシュ動作が `Host` ヘッダーをオリジンに転送するように設定されている場合は、`Host` ヘッダーのドメイン名。

CloudFront が HTTPS を使用してオリジンと通信するとき、CloudFront は証明書が信頼された認証機関によって発行されたものであることを確認します。CloudFront は Mozilla と同じ認証機関をサポートしています。最新のリストは、「[Mozilla に付属する CA 証明書一覧](https://wiki.mozilla.org/CA/Included_Certificates)」を参照してください。CloudFront とオリジンとの間の HTTPS 通信に自己署名証明書を使用することはできません。

**重要**  
失効した証明書、無効な証明書、または自己署名証明書をオリジンサーバーが返したり、間違った順番の証明書チェーンを返したりした場合、CloudFront は TCP 接続を中断し、HTTP ステータスコード 502 (Bad Gateway) を返して、`X-Cache` ヘッダーを `Error from cloudfront` に設定します。中間証明書を含む、証明書チェーンが完全でない場合も、CloudFront は TCP 接続を中断します。