代替ドメイン名と HTTPS の設定 - Amazon CloudFront

代替ドメイン名と HTTPS の設定

ファイルの URL で代替ドメイン名を使用し、ビューワーと CloudFront との間で HTTPS を使用するには、該当する手順を実行します。

SSL/TLS 証明書を取得する

SSL/TLS 証明書を取得します (まだ取得していない場合)。詳細については、該当するドキュメントを参照してください。

  • AWS Certificate Manager (ACM) が提供する証明書を使用するには、AWS Certificate Manager ユーザーガイドを参照してください。その後、CloudFront ディストリビューションの更新 に進みます。

    注記

    AWS のマネージドリソースでの SSL/TLS 証明書のプロビジョニング、管理、およびデプロイには、ACM の使用をお勧めします。米国東部 (バージニア北部) リージョンで ACM 証明書をリクエストする必要があります。

  • サードパーティー認証機関 (CA) から証明書を取得するには、認証機関から提供されたドキュメントを参照してください。証明書を取得した後、次の手順に進んでください。

SSL/TLS 証明書をインポートする

サードパーティー認証機関から証明書を取得した場合、証明書を ACM にインポートするか、IAM 証明書ストアにアップロードします。

ACM (推奨)

ACM では、ACM コンソールから、またはプログラムによってサードパーティー証明書をインポートできます。ACM への証明書のインポートについては、AWS Certificate Manager ユーザーガイドの「AWS Certificate Manager への証明書のインポート」を参照してください。米国東部 (バージニア北部) リージョンで証明書をインポートする必要があります。

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 Certificate] (SSL 証明書) リストに表示されます。

  • CloudFront API の使用 – AWS CLI から返される英数字の文字列 (AS1A2M3P4L5E67SIIXR3J など) を書き留めておきます。これは、IAMCertificateId エレメントに指定する値です。CLI から返される IAM ARN を書き留めておく必要はありません。

AWS CLI の詳細については、AWS Command Line Interface ユーザーガイドAWS CLI コマンドリファレンスを参照してください。

CloudFront ディストリビューションの更新

ディストリビューションの設定を更新するには、以下の手順を実行します。

代替ドメイン名用に CloudFront ディストリビューションを構成するには

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

  2. 更新するディストリビューションの ID を選択します。

  3. [General] タブで、[Edit] を選択します。

  4. 以下の値を更新します。

    代替ドメイン名 (CNAME)

    該当する代替ドメイン名を追加します。ドメイン名をコンマで区切るか、新しい行にドメイン名を 1 つずつ入力します。

    SSL 証明書

    [Custom SSL Certificate (独自 SSL 証明書)] を選択して、リストから証明書を選択します。

    100 個までの証明書がここに一覧表示されます。100 個を超える証明書があり、追加する証明書が表示されない場合には、フィールドに証明書の ARN を入力して選択できます。

    IAM 証明書ストアに証明書をアップロードしたが、一覧に表示されず、フィールドに入力しても選択できない場合には、「SSL/TLS 証明書をインポートする」の手順を参照して、証明書を正しくアップロードしたかを確認します。

    重要

    SSL/TLS 証明書を CloudFront ディストリビューションに関連付けたら、すべてのディストリビューションから証明書を削除して、ディストリビューションのステータスが [デプロイ済み] に変わるまで、証明書を ACM または IAM 証明書ストアから削除しないでください。

    Clients Supported (サポートされるクライアント)

    適用可能なオプションを選択します。

    • [すべてのクライアント]: CloudFront が専用の IP アドレスを使用して HTTPS コンテンツを供給します。このオプションを選択した場合、有効になっているディストリビューションに SSL/TLS 証明書を関連付けると、追加料金がかかります。詳細については、「Amazon CloudFront の料金」を参照してください。

    • [Only Clients that Support Server Name Indication (SNI)]: 古いブラウザなど SNI をサポートしないクライアントは、別の方法を使用してコンテンツにアクセスする必要があります。

    詳細については、「CloudFront で HTTPS リクエストを処理する方法の選択」を参照してください。

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

  6. ビューワーと CloudFront の間で HTTPS が必須になるよう CloudFront を設定する

    1. [Behaviors (動作)] タブで、更新するキャッシュ動作を選択して、[Edit (編集)] を選択します。

    2. [Viewer Protocol Policy] として次のいずれかの値を指定します。

      Redirect HTTP to HTTPS

      ビューワーは両方のプロトコルを使用できますが、HTTP リクエストは自動的に HTTPS リクエストにリダイレクトされます。CloudFront は新しい HTTPS URL と一緒に HTTP ステータスコード 301 (Moved Permanently) を返します。ビューワーはこの HTTPS URL を使用して CloudFront にリクエストを再送信します。

      重要

      CloudFront は、HTTP から HTTPS に DELETEOPTIONSPATCHPOST、または PUT リクエストをリダイレクトしません。HTTPS にリダイレクトするようにキャッシュ動作を設定した場合、CloudFront は HTTP ステータスコード DELETE を使用して、そのキャッシュ動作の HTTP リクエスト (OPTIONSPATCHPOSTPUT、または 403 (Forbidden)) に応答します。

      ビューワーが作成した HTTP リクエストが HTTPS リクエストにリダイレクトされた場合、CloudFront では両方のリクエストに対する課金が発生します。HTTP リクエストの場合は、リクエストの料金と、CloudFront がビューワーに返すヘッダーの料金のみが課金されます。HTTPS リクエストの場合、リクエストの料金と、ファイルが返すヘッダーとオブジェクトの料金が課金されます。

      HTTPS Only

      ビューワーは、HTTPS を使用している場合にのみ、コンテンツにアクセスできます。ビューワーから HTTPS リクエストではなく HTTP リクエストが送信された場合、CloudFront は HTTP ステータスコード 403 (Forbidden) を返し、ファイルは返しません。

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

    4. ビューワーと CloudFront との間で HTTPS を必須にする追加のキャッシュ動作ごとに、ステップ a から c を繰り返します。

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

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

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

    • キャッシュ動作は、リクエストを正しいオリジンにルーティングします。