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

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

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

App Hosting のドメインを設定する

Firebase プロジェクト内に Firebase App Hosting サイトが存在するように、基本的な App Hosting のセットアップタスクが完了していることを確認します。

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

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

ステップ 2: カスタム ドメインを設定する

  1. Firebase コンソールの [カスタム ドメインを追加] ウィザードに、ページが Firebase App Hosting を指すように更新する必要があるレコードが表示されます。次の入力を使用して、DNS プロバイダでドメインに対するレコードの追加、削除、保存を実行します。

    • タイプ: 指定した DNS レコードを追加します。
    • ホスト: レコードのカスタム ドメインキーを入力します。ホストには、コンテンツを提供するドメイン(Apex ドメインまたはサブドメイン)を指定します。ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。

    • : 指定された値をレコードに割り当てます。ドメイン プロバイダによっては、「データ」、「ポイント」、「コンテンツ」、「アドレス」、「IP アドレス」といった用語を使用している場合があります。value フィールドの内容はレコードタイプによって異なります。A レコードと AAAA レコードでは値として IP アドレスが使用されますが、TXT レコードでは文字列が使用されます。

SSL 証明書がプロビジョニングされるのを待ちます。通常、この処理は数時間で完了しますが、DNS が Firebase App Hosting を指定するよう設定してから、最大で 24 時間かかる場合もあります。ほとんどの場合、レコードの伝播と SSL 証明書のプロビジョニングは 1 時間以内に行われます(ドメイン プロバイダによって異なります)。

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

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

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

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

DNS レコードタイプ

App Hosting カスタム ドメイン ウィザードでは、ドメインの現在の構成に応じて、1 ~ 5 個の DNS レコードを追加するよう求められる場合があります。レコードのType によって、その関数が決まります。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 は、次の 2 つの理由で CNAME レコードを使用します。
  • 簡単なオンボーディング: 可能であれば、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 管理サイト内の [ホスト] フィールドに入力する値は、ドメイン プロバイダごとに異なります。以下に、よく利用されるプロバイダの一般的な入力情報をまとめました。詳細な手順については、ドメイン プロバイダのドキュメントをご覧ください

ドメイン タイプ カスタム ドメインキー
Apex ドメイン

一般的な入力情報:

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

一般的な入力情報:

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

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

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

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

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

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 証明書があります。
自分のサイトのコンテンツを提供できます。