カスタム ドメインを接続する

Firebase App Hosting にデプロイされたアプリで、ブランドを象徴する独自のドメイン名の使用をあきらめる必要はありません。Firebase でホストされるサイトには、Firebase で生成されるドメインの代わりに、example.comapp.example.com といったカスタム ドメインを使用できます。Firebase App Hosting は、ドメインごとに SSL 証明書をプロビジョニングします。

カスタム ドメインを接続する手順を、以下で紹介します。

サービスが中断されないようにするには、DNS レコードを特定の順序で更新する必要があります。アプリのダウンタイムを防ぐには、手順に沿ってドメインを移行してください。

ウェブアプリに新しいドメインを接続する場合など、ダウンタイムが問題にならない場合は、新しいドメインを接続する手順に沿って操作してください。

始める前に: DNS レコードの種類

App Hosting ドメインの設定ウィザードでは、ドメインの現在の構成に応じて、1 ~ 5 個の DNS レコードの追加または削除を求められることがあります。レコードのタイプによって、その機能が決まります。App Hosting が求める可能性のあるレコードの種類は次のとおりです。

タイプ 説明 限定
A これらのレコードには IPv4 値(8.8.8.8 など)が含まれており、ブラウザがドメインに接続しようとするときに使用するアドレスが指定されています。
AAAA これらのレコードには、IPv6 値(2001:4860:4860::8888 など)が含まれています。これは、A レコードとほぼ同じ機能を持つ別のタイプのアドレス レコードです。App Hosting は現在 AAAA レコードを使用していませんが、既存の AAAA レコードがある場合は、ドメインから削除するよう求められます。
CNAME これらのレコードには、現在のドメインの代わりに DNS クエリの解決に使用する別のドメイン名が含まれています。CNAME レコードはサブドメイン(www.example.com など)でのみ使用できます。App Hosting が CNAME レコードを使用する理由は 2 つあります。
  • 簡単なオンボーディング: 可能な場合、App Hosting_custom-domain... で始まる事前構成済みのドメインへの CNAME を要求します。
  • SSL 証明書の検証: App Hosting は、Cloud Certificate Manager を使用してカスタム ドメインの SSL 証明書をプロビジョニングします。_acme-challenge... サブドメインの CNAME レコードにより、Certificate Manager は証明書を作成して更新できます。オンボーディング後、このレコードを削除しないでください。削除すると、証明書の対象範囲が失効します。
TXT これらのレコードを使用すると、任意のメタデータをドメインに関連付けることができます。App Hosting を使用すると、特定の形式の TXT レコード fah-claim=[UUID] を使用して、ドメインでサービスを提供するカスタム ドメインを指定できます。 いいえ
CAA これらのレコードは、ドメインの SSL 証明書を作成する権限を持つ認証局を指定するための許可リストとして機能します。App Hosting は、ドメインの証明書の作成がブロックされている場合にのみ CAA レコードをリクエストします。 いいえ

始める前に: カスタム ドメイン名

DNS レコードの追加または編集時に DNS 管理サイト内の [ホスト](または [ホスト名])フィールドに入力する値は、ドメイン プロバイダごとに異なります。App Hosting カスタム ドメイン ウィザードでは、この同じ値を [名前] フィールドに入力する必要があります。

以下に、よく利用されるプロバイダの一般的な入力情報をまとめました。詳細な手順については、ドメイン プロバイダのドキュメントをご覧ください

ドメイン タイプ カスタム ドメイン名
Apex ドメイン

一般的な入力情報:

  • @
  • Apex ドメイン名(example.com など)
  • [ホスト] フィールドは空白のままにする
サブドメイン

一般的な入力情報:

  • 完全なサブドメイン名(app.example.com など)
  • サブドメイン部分のみ(app のみで .example.com は除外)

一般的なドメイン プロバイダ

一般的なドメイン プロバイダと、それぞれに必要な入力の種類は次のとおりです。この情報は可能な限り最新の状態に保たれますが、詳しい手順についてはドメイン プロバイダのドキュメントをご覧ください

ドメインを移行

別のプロバイダから App Hosting にダウンタイムなしでドメインを移行する場合は、Firebase コンソールのドメインの移行フローを使用できます。このフローでは、トラフィックを App Hosting サーバーに転送する前に、ドメインでコンテンツを配信するように App Hosting を準備する 2 つの手順を説明します。

ステップ 1: カスタム ドメインを追加する

  1. プロジェクトの App Hosting ページを開きます。
  2. [ダッシュボードを表示] オプションを使用して、App Hosting バックエンドを選択します。
  3. [設定] タブを選択し、[カスタム ドメインを追加] をクリックします。
  4. App Hosting サイトに接続するカスタム ドメイン名を入力します。
  5. (省略可)カスタム ドメインのすべてのリクエストを 2 番目に指定されたドメインにリダイレクトするチェックボックスをオンにします(example.comwww.example.com を同じコンテンツにリダイレクトします)。
  6. [設定に進む] をクリックして DNS レコードを構成し、カスタム ドメインの設定を完了します。

ステップ 2: ドメインを準備する

  1. [ドメインを設定] ウィザードの [ドメインを移行する] タブを選択します。
  2. 最初の手順であるドメインを準備するの手順に沿って操作します。この手順には、App Hosting が優先するバックエンドを提供し、ドメインの安全な TLS 接続を確立するために必要な変更が含まれています。必要なレコードについて次の入力を使用して、DNS プロバイダでドメインに対するレコードの追加、削除、保存を実行します。
    • 名前: レコードのカスタム ドメイン名を入力します。ホストには、コンテンツを提供するドメイン(Apex ドメインまたはサブドメイン)を指定します。ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。
    • レコードタイプ: 指定した DNS レコードを追加します。
    • : 指定された値をレコードに割り当てます。ドメイン プロバイダによっては、「データ」、「ポイント」、「コンテンツ」、「アドレス」、「IP アドレス」といった用語を使用している場合があります。値フィールドの内容はレコードタイプによって異なります。たとえば、TXT レコードは文字列です。
  3. [レコードを確認] を選択します。App Hosting は、ドメイン プロバイダで行った変更の検出を試みます。変更が反映されるまでに、最長で 24 時間かかることがあります。[設定] > [ドメイン] ビューのバックエンド ダッシュボードでステータスを確認できます。

ステップ 3: App Hosting に誘導する

  1. App Hosting が前のステップのレコード更新を確認すると、ウィザードは最後の [App Hosting に転送] ステップに進みます。この手順では、ドメインのトラフィックを App Hosting サーバーに転送するために必要なレコードの更新が表示されます。これまでと同様に、必要なレコードについて次の入力を使用して、DNS プロバイダでドメインに対するレコードの追加、削除、保存を実行します。
    • 名前: レコードのカスタム ドメイン名を入力します。ホストには、コンテンツを提供するドメイン(Apex ドメインまたはサブドメイン)を指定します。ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。
    • レコードタイプ: 指定した DNS レコードを追加します。
    • : 指定された値をレコードに割り当てます。ドメイン プロバイダによっては、「データ」、「ポイント」、「コンテンツ」、「アドレス」、「IP アドレス」といった用語を使用している場合があります。値フィールドの内容はレコードタイプによって異なります。たとえば、TXT レコードは文字列です。
  2. [レコードを確認] を選択します。App Hosting は、ドメイン プロバイダで行った変更の検出を試みます。変更が反映されるまでに、最長で 24 時間かかることがあります。[設定] > [ドメイン] ビューのバックエンド ダッシュボードでステータスを確認できます。

新しいドメインを接続する

ウェブアプリに新しいドメインを接続する場合など、ダウンタイムが問題にならない場合は、このセクションの手順に沿って操作します。

ステップ 1: カスタム ドメインを追加する

  1. プロジェクトの App Hosting ページを開きます。
  2. [ダッシュボードを表示] オプションを使用して、App Hosting バックエンドを選択します。
  3. [設定] タブを選択し、[カスタム ドメインを追加] をクリックします。
  4. App Hosting サイトに接続するカスタム ドメイン名を入力します。
  5. (省略可)カスタム ドメインのすべてのリクエストを 2 番目に指定されたドメインにリダイレクトするチェックボックスをオンにします(example.comwww.example.com を同じコンテンツにリダイレクトします)。
  6. [設定に進む] をクリックして DNS レコードを構成し、カスタム ドメインの設定を完了します。

ステップ 2: DNS レコードを確認する

  1. Firebase コンソールの [ドメインを設定] ウィザードに、ページが Firebase App Hosting を指すように更新する必要があるレコードが表示されます。次の入力を使用して、DNS プロバイダでドメインに対するレコードの追加、削除、保存を実行します。
    • 名前: レコードのカスタム ドメイン名を入力します。ホストには、コンテンツを提供するドメイン(Apex ドメインまたはサブドメイン)を指定します。ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。
    • レコードタイプ: 指定した DNS レコードを追加します。
    • : 指定された値をレコードに割り当てます。ドメイン プロバイダによっては、「データ」、「ポイント」、「コンテンツ」、「アドレス」、「IP アドレス」といった用語を使用している場合があります。値フィールドの内容はレコードタイプによって異なります。たとえば、TXT レコードは文字列です。
  2. [レコードを確認] を選択します。App Hosting は、ドメイン プロバイダで行った変更の検出を試みます。変更が反映されるまでに、最長で 24 時間かかることがあります。[設定] > [ドメイン] ビューのバックエンド ダッシュボードでステータスを確認できます。

SSL 証明書のプロビジョニングを待機する

DNS レコードを更新した後、App Hosting がドメインの SSL 証明書をプロビジョニングするまでに数時間かかることがあります。場合によっては、DNS が Firebase App Hosting を指定するよう設定してから、最大で 24 時間かかることがあります。

この証明書はブラウザのセキュリティ ツールを使って表示できます。ドメインのプロビジョニング中は、無効な証明書が表示されたり、ドメインへの接続で問題が発生したりすることがあります。これは、通常プロセスの一部であり、ドメインの証明書が入手可能になると解決します。

注: Firebase App Hosting は、必要に応じてカスタム ドメインの SSL 証明書を自動的に再プロビジョニングします。

カスタム ドメインのステータスの説明

ステータス 説明
設定が必要です

DNS レコードを使った構成の変更が必要な場合があります。

  • ほとんどの場合、DNS A レコードはドメイン名プロバイダから Firebase App Hosting サーバーに伝播されていません。
    トラブルシューティングのヒント: 24 時間以上経過している場合は、レコードが Firebase App Hosting を指していることを確認してください。

  • まれに、DNS レコードに他のホスティング プロバイダを指す A レコードまたは CNAME レコードがあることが原因で、SSL チャレンジが失敗することがあります。
    トラブルシューティングのヒント: A レコードが Firebase App Hosting のみを指していることを確認し、すべての CNAME レコードを削除します。

保留中

カスタム ドメインを正しく設定しましたが、Firebase App Hosting は SSL 証明書をプロビジョニングしていません。

過度に制限的な CAA レコードによって、カスタム ドメインの SSL 証明書の作成が滞ることがあります。認証局「letsencrypt.org」と「pki.goog」で、ドメインでの SSL 証明書の作成が許可されていることを確認します。

証明書を作成中

ドメインの SSL 証明書を作成しています。

接続済み

カスタム ドメインには適切な DNS レコードがあり、SSL 証明書があります。
自分のサイトのコンテンツを提供できます。