メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

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

オブジェクトの URL で代替ドメイン名を使用し、ビューワーと CloudFront との間で HTTPS を使用するには、該当する手順を実行します。

3 つ以上の SSL/TLS 証明書を使用する許可をリクエストする

CloudFront に 3 つ以上の SSL/TLS 専用 IP 証明書を永続的に関連付けるための許可が必要な場合は、以下の手順を実行します。HTTPS リクエストの詳細については、「CloudFront で HTTPS リクエストを供給する方法の選択」を参照してください。

注記

CloudFront ディストリビューションに3つ以上の専用 IP 証明書を使用するための手順は以下の通りです。デフォルト値は 2 です。ディストリビューションには SSL 証明書を複数バインドできないのでご注意ください。

CloudFront ディストリビューションに SSL/TLS 証明書を関連付けることができるのは、1 回に 1 つのみです。この数は、すべての CloudFront ディストリビューション間で使用できる専用 IP SSL 証明書の合計数です。

CloudFront ディストリビューションに 3 つ以上の証明書を使用するための許可をリクエストする

  1. サポートセンターにアクセスし、サポートケースを作成してください。

  2. 使用するためのアクセス権限が必要な証明書の数と状況をリクエストに記載してください。AWS は可能な限り速やかにお客様のアカウントを更新します。

  3. 次の手順に進みます。

SSL/TLS の証明書を取得する

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

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

    注記

    ACM を使用して AWS が管理するリソースに SSL/TLS 証明書のプロビジョニング、管理、デプロイを行うことをお勧めします。

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

  • 自己署名証明書を作成するには、証明書の作成と署名に使用するアプリケーションに関するドキュメントを参照してください。その後、次の手順に進みます。

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

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

ACM (推奨)

ACM では、ACM コンソールから、またはプログラムによってサードパーティー証明書をインポートできます。ACM への証明書のインポートに関する詳細については、AWS Certificate Manager ユーザーガイドImporting Certificates into AWS Certificate Manager を参照してください。

IAM 証明書ストア

ACM がお客様のリージョンで使用できない場合、次の AWS CLI コマンドを使用してサードパーティー証明書を IAM 証明書ストアにアップロードします。(ACM が使用可能なリージョンのリストについては、アマゾン ウェブ サービス全般のリファレンス の「AWS のリージョンとエンドポイント」章の AWS Certificate Manager を参照してください。)

Copy
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 アカウント – IAM 証明書ストアに証明書をアップロードするときには、CloudFront ディストリビューションを作成するために使用した AWS アカウントと同じアカウントを使用する必要があります。

  • --path パラメータ – 証明書を IAM にアップロードする場合、-path パラメータ (証明書のパス) の値が /cloudfront/ で始まる必要があります (/cloudfront/production//cloudfront/test/ など)。パスは / で終わる必要があります。

  • 既存の証明書--server-certificate-name--path パラメータには、既存の証明書に関連付けられている値とは異なる値を指定する必要があります。

  • CloudFront コンソールを使用 – AWS CLI で --server-certificate-name パラメーターに指定する値 (たとえば、myServerCertificate) は CloudFront コンソールの [SSL Certificate] リストに表示されます。

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

AWS CLI の詳細については、AWS Command Line Interface ユーザーガイドAWS Command Line Interface Reference を参照してください。

CloudFront ディストリビューションを更新する

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

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

  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/cloudfront/ にある、CloudFront コンソールを開きます。

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

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

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

    代替ドメイン名 (CNAME)

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

    SSL 証明書 (ウェブディストリビューションのみ)

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

    IAM 証明書ストアに証明書をアップロードする場合で、それがリストに表示されない場合は、SSL/TLS 証明書をインポートする の手順を確認して、証明書が正しくアップロードされたことを確認します。

    重要

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

    サポートされるクライアント (ウェブディストリビューションのみ)

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

    • [All Clients]: 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 から HTPS に DELETEOPTIONSPATCHPOST、または PUT リクエストをリダイレクトしません。HTTPS にリダイレクトするようにキャッシュ動作を設定した場合、CloudFront は HTTP ステータスコード 403 (Forbidden) を使用してそのキャッシュ動作の HTTP DELETEOPTIONSPATCHPOST、または PUT リクエストに応答します。

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

      HTTPS Only

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

    3. [Yes, Edit] を選択します。

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

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

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

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

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