

# CloudFront ディストリビューションテナントの証明書をリクエストする
<a name="managed-cloudfront-certificates"></a>

ディストリビューションテナントを作成すると、テナントはマルチテナントディストリビューションから共有 AWS Certificate Manager (ACM) 証明書を継承します。この共有証明書は、マルチテナントディストリビューションに関連付けられているすべてのテナントに HTTPS を提供します。

CloudFront ディストリビューションテナントを作成または更新してドメインを追加するときは、ACM からマネージド CloudFront 証明書を追加できます。その後、CloudFront はユーザーに代わって ACM から HTTP 検証済み証明書を取得します。このテナントレベルの ACM 証明書は、カスタムドメイン設定に使用できます。CloudFront は更新ワークフローを合理化し、証明書を最新の状態に保ち、安全なコンテンツ配信を中断させないようにします。

**注記**  
証明書は所有していますが、CloudFront リソースで*のみ*使用でき、プライベートキーをエクスポートすることは*できません*。

証明書は、ディストリビューションテナントを作成または更新するときにリクエストできます。

**Topics**
+ [ドメインと証明書を追加する (ディストリビューションテナント)](#vanity-domain-tls-tenant)
+ [ドメイン設定を完了する](#complete-domain-ownership)
+ [ドメインを CloudFront にポイントする](#point-domains-to-cloudfront)
+ [ドメインに関する考慮事項 (ディストリビューションテナント)](#tenant-domain-considerations)
+ [ワイルドカードドメイン (ディストリビューションテナント)](#tenant-wildcard-domains)

## ドメインと証明書を追加する (ディストリビューションテナント)
<a name="vanity-domain-tls-tenant"></a>

次の手順では、ドメインを追加し、ディストリビューションテナントの証明書を更新する方法を示します。

**ドメインと証明書を追加するには (ディストリビューションテナント)**

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

1. **[SaaS]** で、**[ディストリビューションテナント]** を選択します。

1. ディストリビューションテナントを検索します。検索バーのドロップダウンメニューを使用して、ドメイン、名前、ディストリビューション ID、証明書 ID、接続グループ ID、またはウェブ ACL ID でフィルタリングします。

1. ディストリビューションテナント名を選択します。

1. **[ドメイン]** で、**[ドメインの管理]** を選択します。

1. **[証明書]** で、ディストリビューションテナントの **[カスタム TLS 証明書]** が必要かどうかを選択します。証明書は、ドメイン名を使用する権限があるかどうかを検証します。証明書は、米国東部 (バージニア北部) リージョンに存在する必要があります。

1. **[ドメイン]** で、**[ドメインの追加]** を選択し、ドメイン名を入力します。ドメインによっては、入力したドメイン名の下に次のメッセージが表示されます。
   + このドメインは証明書の対象です。
   + このドメインは証明書の対象であり、検証保留中です。
   + このドメインは証明書の対象ではありません。(ドメインの所有権を検証する必要があります。)

1. **[ディストリビューションテナントを更新]** を選択します。

   テナントの詳細ページの **[ドメイン]** の下に、次のフィールドが表示されます。
   + **[ドメイン所有権]** – ドメイン所有権のステータス。CloudFront がコンテンツを提供する前に、TLS 証明書の検証を使用して、ドメインの所有権を検証する必要があります。
   + **[DNS ステータス]** – トラフィックを正しくルーティングするには、ドメインの DNS レコードが CloudFront を指す必要があります。

1. ドメインの所有権が確認されていない場合は、テナントの詳細ページの **[ドメイン]** で、**[ドメイン設定の完了]** を選択し、次の手順を実行して DNS レコードが CloudFront ドメイン名を指すようにします。

## ドメイン設定を完了する
<a name="complete-domain-ownership"></a>

以下の手順に従って、ディストリビューションテナントのドメインを所有していることを検証します。ドメインに応じて、次のいずれかの手順を選択します。

**注記**  
ドメインが Amazon Route 53 エイリアスレコードで CloudFront を既に指している場合は、ドメイン名の前に `_cf-challenge.` を使用して、DNS TXT レコードを追加する必要があります。この TXT レコードは、ドメイン名が CloudFront にリンクされていることを検証します。ドメインごとにこの手順を繰り返します。以下に、TXT レコードを更新する方法を示します。  
レコード名: `_cf-challenge.DomainName`
レコードタイプ: `TXT`
レコード値: `CloudFrontRoutingEndpoint`
例えば、TXT コードは次のように表記されます。`_cf-challenge.example.com TXT d111111abcdef8.cloudfront.net`  
CloudFront ルーティングエンドポイントは、ディストリビューションテナントの詳細ページでコンソールで検索するか、「*Amazon CloudFront API リファレンス*」の [ListConnectionGroups](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListConnectionGroups.html) API アクションを使用して検索できます。

**ヒント**  
SaaS プロバイダーで、顧客 (テナント) が TXT レコードを DNS に直接追加する必要なく証明書の発行を許可する場合は、次の操作を行います。  
ドメイン `example-saas-provider.com` を所有している場合は、`customer-123.example-saas-provider.com` などのサブドメインをテナントに割り当てます。
DNS で、`_cf-challenge.customer-123.example-saas-provider.com TXT d111111abcdef8.cloudfront.net` TXT レコードを DNS 設定に追加します。
次に、顧客 (テナント) は独自の DNS レコードを更新して、ドメイン名を指定したサブドメインにマッピングできます。  
`www.customer-domain.com CNAME customer-123.example-saas-provider.com`

------
#### [ I have existing traffic ]

ドメインがダウンタイムを許容できない場合は、このオプションを選択します。オリジン/ウェブサーバーにアクセスできる必要があります。ドメインの所有権を検証するには、次の手順に従います。

**既存のトラフィックがある場合にドメイン設定を完了するには**

1. **[ウェブトラフィックを指定する]** で、**[既存のトラフィックがある]** を選択し、**[次へ]** を選択します。

1. **[ドメインの所有権を検証する]** には、次のいずれかのオプションを選択します。
   + **[既存の証明書を使用する]** – 既存の ACM 証明書を検索するか、リストされているドメインを対象とする証明書 ARN を入力します。
   + **[手動ファイルアップロード]** – ウェブサーバーにファイルをアップロードするための直接アクセス権がある場合に選択します。

     ドメインごとに、**[トークンの場所]** から検証トークンを含むプレーンテキストファイルを作成し、既存のサーバーの指定された **[ファイルパス]** でオリジンにアップロードします。このファイルへのパスは次の例のようになります。`/.well-known/pki-validation/acm_9c2a7b2ec0524d09fa6013efb73ad123.txt`。このステップを完了すると、ACM はトークンを検証し、ドメインの TLS 証明書を発行します。
   + **[HTTP リダイレクト]** – ウェブサーバーにファイルをアップロードするための直接アクセスがない場合、または CDN またはプロキシサービスを使用している場合に選択します。

     ドメインごとに、既存のサーバーに 301 リダイレクトを作成します。**[リダイレクト元]** の下の既知のパスをコピーし、**[リダイレクト先]** の下の指定された証明書エンドポイントをポイントします。リダイレクトは次の例のようになります。

     ```
     If the URL matches: example.com/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     Then the settings are:Forwarding URL
     Then 301 Permanent Redirect:To validation.us-east-1.acm-validations.aws/123456789012/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt
     ```
**注記**  
**[証明書ステータスの確認]** を選択して、ACM がドメインの証明書を発行するタイミングを検証できます。

1. [**次へ**] を選択します。

1. 「[ドメインを CloudFront にポイントする](#point-domains-to-cloudfront)」のステップを完了します。

------
#### [ I don't have traffic ]

新しいドメインを追加する場合は、このオプションを選択します。CloudFront は証明書の検証を管理します。

**トラフィックがない場合にドメイン設定を完了するには**

1. **[ウェブトラフィックを指定する]** で、**[トラフィックがまだありません]** を選択します。

1. ドメイン名ごとに、「[ドメインを CloudFront にポイントする](#point-domains-to-cloudfront)」の手順を完了します。

1. 各ドメイン名の DNS レコードを更新したら、**[次へ]** を選択します。

1. 証明書が発行されるまで待ちます。
**注記**  
**[証明書ステータスの確認]** を選択して、ACM がドメインの証明書を発行するタイミングを検証できます。

1. [**Submit**] を選択してください。

------

## ドメインを CloudFront にポイントする
<a name="point-domains-to-cloudfront"></a>

DNS レコードを更新して、各ドメインから CloudFront ルーティングエンドポイントにトラフィックをルーティングします。複数のドメイン名を持つことができますが、すべてをこのエンドポイントに解決する必要があります。

**ドメインを CloudFront にポイントするには**

1. d111111abcdef8.cloudfront.net などの CloudFront ルーティングエンドポイント値をコピーします。

1. DNS レコードを更新して、各ドメインから CloudFront ルーティングエンドポイントにトラフィックをルーティングします。

   1. ドメインレジストラまたは DNS プロバイダーの管理コンソールにサインインします。

   1. ドメインの DNS 管理セクションに移動します。
      + **サブドメインの場合** – CNAME レコードを作成します。例えば、次のようになります。
        + **名前** – サブドメイン (`www` や `app` など)
        + **値/ターゲット** – CloudFront ルーティングエンドポイント
        + **レコードタイプ** – CNAME
        + **TTL** – 3600 (またはユースケースに適したもの)
      + **apex/root ドメインの場合** – 標準の CNAME レコードをルートまたは apex ドメインレベルで使用できないため、一意の DNS 設定が必要です。ほとんどの DNS プロバイダーは ALIAS レコードをサポートしていないため、Route 53 で ALIAS レコードを作成することをお勧めします。例えば、次のようになります。
        + **名前** – apex ドメイン (`example.com` など)
        + **レコードタイプ** – A
        + **エイリアス** – はい
        + **エイリアスターゲット** – CloudFront ルーティングエンドポイント
        + **ルーティングポリシー** – シンプル (またはユースケースに適したもの)

   1. DNS の変更が伝播されたことを確認します。(これは通常、TTL の有効期限が切れたときに発生します。場合によっては 24～48 時間かかることがあります。) `dig` や `nslookup` などのツールを使用します。

      ```
      dig www.example.com
      # Should eventually return a CNAME pointing to your CloudFront routing endpoint
      ```

1. CloudFront コンソールに戻り、**[送信]** を選択します。ドメインがアクティブになると、CloudFront はドメインのステータスを更新して、ドメインがトラフィックを処理する準備ができていることを示します。

詳細については、DNS プロバイダーのドキュメントを参照してください。
+ [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
+ [ClouDNS](https://www.cloudns.net/wiki/article/9/)
+ [DNSimple](https://support.dnsimple.com/categories/dns/)
+ [Gandi.net](https://www.gandi.net/)
+ [GoDaddy](https://www.godaddy.com/help/manage-dns-records-680)
+ [Google Cloud DNS](https://cloud.google.com/dns/docs/records)
+ [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/)

## ドメインに関する考慮事項 (ディストリビューションテナント)
<a name="tenant-domain-considerations"></a>

ドメインがアクティブになると、ドメインコントロールが確立され、CloudFront はこのドメインに対するすべてのビューワーリクエストに応答します。一度アクティブ化すると、ドメインを非アクティブ化したり、非アクティブステータスに変更したりすることはできません。ドメインは、既に使用中の別の CloudFront リソースに関連付けることはできません。ドメインを別のディストリビューションに関連付けるには、[UpdateDomainAssociation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDomainAssociation.html) リクエストを使用して、ドメインを 1 つの CloudFront リソースから別のリソースに移動します。

ドメインが非アクティブの場合、CloudFront はドメインへのビューワーリクエストに応答しません。ドメインが非アクティブの間は、次の点に注意してください。
+ 保留中の証明書リクエストがある場合、CloudFront は既知のパスのリクエストに応答します。リクエストが保留中の間は、ドメインを他の CloudFront リソースに関連付けることはできません。
+ 保留中の証明書リクエストがない場合、CloudFront はドメインのリクエストに応答しません。ドメインを他の CloudFront リソースに関連付けることができます。
+ ディストリビューションテナントごとの*保留中の証明書リクエストは 1 つ*のみです。追加のドメインに対して別の証明書をリクエストする前に、既存の保留中のリクエストをキャンセルする必要があります。既存の証明書リクエストをキャンセルしても、関連付けられた ACM 証明書は削除されません。ACM API を使用してディストリビューションを削除できます。
+ 新しい証明書をディストリビューションテナントに適用すると、以前の証明書の関連付けが解除されます。証明書を再利用して、別のディストリビューションテナントのドメインをカバーできます。

DNS 検証済み証明書の更新と同様に、証明書の更新が成功すると通知されます。それ以外に何かする必要はありません。CloudFront はドメインの証明書の更新を自動的に管理します。

**注記**  
証明書リソースを作成または更新するために ACM API オペレーションを呼び出す必要はありません。[CreateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistributionTenant.html) および [UpdateDistributionTenant](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistributionTenant.html) API オペレーションを使用して、マネージド証明書リクエストの詳細を指定することで、証明書を管理できます。

## ワイルドカードドメイン (ディストリビューションテナント)
<a name="tenant-wildcard-domains"></a>

ワイルドカードドメインは、以下の状況のディストリビューションテナントでサポートされています。
+ 親マルチテナントディストリビューションから継承された共有証明書にワイルドカードが含まれている場合
+ ディストリビューションテナントに有効な既存のカスタム TLS 証明書を使用する場合