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

Firebase App Hosting にデプロイされたアプリでは、ブランドを象徴する独自のドメイン名の使用をあきらめる必要はありません。Firebase でホストされるサイトには、Firebase で生成されるドメインの代わりに、example.com や app.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. Firebase コンソールで、[ホスティングとサーバーレス] > [App Hosting] に移動します。
  2. [ダッシュボードを表示] オプションを使用して、App Hosting バックエンドを選択します。
  3. [設定] タブを選択し、[カスタム ドメインを追加] をクリックします。
  4. App Hosting サイトに接続するカスタム ドメイン名を入力します。
  5. (省略可)カスタム ドメインのすべてのリクエストを 2 番目に指定されたドメインにリダイレクトするチェックボックスをオンにします(example.com や www.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. Firebase コンソールで、[ホスティングとサーバーレス] > [App Hosting] に移動します。
  2. [ダッシュボードを表示] オプションを使用して、App Hosting バックエンドを選択します。
  3. [設定] タブを選択し、[カスタム ドメインを追加] をクリックします。
  4. App Hosting サイトに接続するカスタム ドメイン名を入力します。
  5. (省略可)カスタム ドメインのすべてのリクエストを 2 番目に指定されたドメインにリダイレクトするチェックボックスをオンにします(example.com や www.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 証明書があります。
自分のサイトのコンテンツを提供できます。