CloudFront とカスタムオリジン間の通信で HTTPS を必須にする - Amazon CloudFront

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

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

注記

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

CloudFront とオリジン間で HTTPS を必須にするには、このトピックの手順に従って次を実行します。

  1. ディストリビューションで、[Origin Protocol Policy] (オリジンプロトコルポリシー) 設定を変更します。

  2. オリジンサーバーに SSL/TLS 証明書をインストールします (Amazon S3 オリジン、または特定のその他 AWS オリジンを使用する場合は必要ありません)。

CloudFront 設定の変更

次の手順では、Elastic Load Balancing ロードバランサー、Amazon EC2 インスタンス、または別のカスタムオリジンとの通信で HTTPS を使用するよう CloudFront を設定する方法について説明します。CloudFront API を使用してディストリビューションを更新する方法については、Amazon CloudFront API リファレンスの「UpdateDistribution」を参照してください。

CloudFront とカスタムオリジンの間で HTTPS を必須にするよう CloudFront を設定するには

  1. AWS Management Console にサインインし、https://console.aws.amazon.com/cloudfront/v3/home で CloudFront コンソールを開きます。

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

  3. [Origins] タブで、更新するオリジンを選択し、[Edit] を選択します。

  4. 次の設定を更新します。

    オリジンプロトコルポリシー

    ディストリビューションの該当するオリジンで、[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と TLSv1.2にはありません。SSLv3 を選択すると、CloudFront は SSLv3 ハンドシェイクリクエストのみを送信します。

  5. [Yes, Edit (はい、編集します)] を選択します。

  6. CloudFront とカスタムオリジンとの間で HTTPS を必須にする追加のオリジンごとに、ステップ 3 から 5 を繰り返します。

  7. 本番環境で更新された情報を使用する前に、次を確認してください。

    • ビューワーに HTTPS の使用が必要とされるリクエストにのみ、各キャッシュ動作のパスパターンが適用されている。

    • CloudFront が評価する順番にキャッシュ動作がリストされている。詳細については、「パスパターン」を参照してください。

    • キャッシュ動作は、[Origin Protocol Policy] を変更したオリジンにリクエストをルーティングします。

カスタムオリジンへの SSL/TLS 証明書のインストール

SSL/TLS 証明書は、カスタムオリジンの次のソースから使用できます。

  • オリジンが Elastic Load Balancing ロードバランサーである場合は、AWS Certificate Manager (ACM) が提供する証明書を使用できます。信頼されたサードパーティー認証機関が署名して ACM にインポートされた証明書を使用することもできます。

  • Elastic Load Balancing ロードバランサー以外のオリジンの場合、信頼されたサードパーティー認証機関 (CA) (Comodo、DigiCert、Symantec など) によって署名された証明書を使用する必要があります。

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

重要

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

オリジンから返された証明書は、ディストリビューションの対応するオリジンに対して [オリジンドメイン名] に指定したドメインを対象としている必要があります。さらに、Host ヘッダーをオリジンに転送するように CloudFront を設定した場合、オリジンは Host ヘッダーのドメインに一致する証明書で応答する必要があります。