Firebase Hosting では、ブランドを象徴する独自のドメイン名の使用をあきらめる必要はありません。Firebase でホストされるサイトには、Firebase で生成されるドメインの代わりに、example.com
や app.example.com
といったカスタム ドメインを使用できます。
Firebase Hosting は、ドメインの SSL 証明書をプロビジョニングし、グローバル CDN 経由でコンテンツを提供します。

カスタム ドメインを接続する方法を、以下で紹介します。
Hosting 用にドメインを設定する
プロジェクトの [Firebase Hosting] ページで [使ってみる] ウィザードが完了していて、Firebase プロジェクト内に Firebase Hosting サイトがあることを確認します。
ステップ 1: ドメインを追加する
プロジェクトの [Hosting] ページで、カスタム ドメインを接続するためのウィザードを開始します。
- Hosting サイトが 1 つしかない場合は、[カスタム ドメインを追加] をクリックします。
- 複数の Hosting サイトがある場合は、目的のサイトの [表示] をクリックしてから、[カスタム ドメインを追加] をクリックします。
Hosting サイトに接続するカスタム ドメイン名を入力します。
(省略可)カスタム ドメインのすべてのリクエストを 2 番目に指定されたドメインにリダイレクトするチェックボックスをオンにします(example.com
や www.example.com
を同じコンテンツにリダイレクトします)。
[続行] をクリックして検証プロセスを開始します。
ステップ 2: ドメインの所有権を確認する
[ドメインを接続] 設定ウィザードで要求された場合は、apex ドメインを確認します。
以下の手順により、ドメインが Firebase プロジェクトにリンクされていないことと、指定したドメインを自分が所有していることを確認できます。
ドメイン プロバイダのサイトで、DNS 管理ページを探します。
次のように入力して、新しいレコードを追加して保存します。
タイプ: TXT レコードを追加します。
Firebase Hosting では、ドメインの所有者であることを証明し、サイトの SSL 証明書の割り当てと更新を Firebase で承認するために、この TXT レコードを常に DNS 設定で保持する必要があります。
ドメイン プロバイダによっては、「レコードタイプ」といった用語を使用している場合があります。
ホスト: Apex ドメインキーを入力します。
Apex ドメインまたはルートドメインの所有者であることと、そのすべてのサブドメインの所有権があることを証明します。
ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。
値: 一意の検証値をフィールドにコピーします。
Firebase Hosting はこの値をチェックして、ドメインの所有権であることを証明します。
ドメイン プロバイダによっては、「データ」といった用語を使用している場合があります。
更新された TXT レコードが伝播されるまで最長で 24 時間かかります。伝播されたら、[確認] をクリックします。
[キャンセル] をクリックして [ドメインを接続] ウィンドウを安全に閉じ、後で再度開くことができます。この操作はレコードの伝播時間に影響しませんが、ウィンドウを再度開くときにドメイン名の再入力が要求されます。
伝播するのに十分な時間が経過したら、Firebase コンソールの [ドメインを接続] ウィンドウで [確認] をクリックして、SSL 証明書のプロビジョニング プロセスを開始できます。
ほとんどの場合、レコードの伝播とドメインの検証は数時間以内に行われます(ドメイン プロバイダによって異なります)。TXT レコードを追加するための詳細な手順と伝播時間については、ドメイン プロバイダのドキュメントをご覧ください。
[確認] をクリックしてエラー メッセージが表示される場合は、レコードが完全に伝播されていないか、値が正しくありません。
ステップ 3: 運用を開始する
Firebase コンソールの [ドメインを接続] ウィンドウで、新しいサイトの [クイック セットアップ] を選択します。すでに別のホスティング プロバイダで稼働しているサイトがあり、ゼロ ダウンタイム移行が必要な場合は、[詳細設定] を選択します。
クイック セットアップ
- ドメイン名プロバイダの DNS 管理サイトに戻り、ページが Firebase Hosting を指すように DNS A レコードを作成します。次のように入力して、レコードを追加して保存します。
- タイプ: 2 件の DNS A レコードを追加します。
- ホスト: 両方のレコードのカスタム ドメインキーを入力します。
ホストには、コンテンツを提供するドメイン(Apex ドメインまたはサブドメイン)を指定します。
ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。
- 値: 各 DNS A レコードに値を割り当てて、ドメインが指定された IP アドレスを指すようにします。
ドメイン プロバイダによっては、「データ」、「ポイント」、「コンテンツ」、「アドレス」、「IP アドレス」といった用語を使用している場合があります。
- SSL 証明書がプロビジョニングされるのを待ちます。
この処理は、A レコードが Firebase Hosting を指すように指定してから最大で 24 時間かかります。
ほとんどの場合、レコードの伝播と SSL 証明書のプロビジョニングは数時間以内に行われます(ドメイン プロバイダによって異なります)。
詳細設定
- Firebase コンソールの [ドメインを接続] ウィンドウで、既存のサイトを移行するためのトークンを提供するように要求されます。トークンを提供するには、次のいずれかを行います。
- DNS TXT レコードを更新する: ドメイン プロバイダの DNS 管理サイトにアクセスします。ドメインキーと指定された値を使って TXT レコードを追加します。
TXT レコードが伝播されるまで最大で 24 時間かかります。
- ファイルを既存のサイトにアップロードする: 指定した URL の既存のサイトにトークンをアップロードし、存在していることを確認します。
このページは HTTPS 経由で提供され、有効または安全である必要はありません。暗号化されたトークンは 1 回のみ有効です。移行が失敗すると、レコード用に新しいトークンが生成されます。
- SSL 証明書のプロビジョニングが完了するまで待ちます。この処理は最長で 24 時間かかります。ほとんどの場合、レコードの伝播と SSL 証明書のプロビジョニングは数時間以内に行われます(ドメイン プロバイダによって異なります)。
- SSL 証明書がプロビジョニングされたら、DNS プロバイダの DNS 管理サイトに戻り、ページが Firebase Hosting を指すように DNS A レコードを追加します。次のように入力して、レコードを追加して保存します。
- タイプ: 2 件の DNS A レコードを追加します。
- ホスト: 両方のレコードのカスタム ドメインキーを入力します。
ホストには、コンテンツを提供するドメイン(Apex ドメインまたはサブドメイン)を指定します。
ドメイン プロバイダによっては、「ホスト名」、「名前」、「ドメイン」といった用語を使用している場合があります。
- 値: 各 DNS A レコードに値を割り当てて、ドメインが指定された IP アドレスを指すようにします。
ドメイン プロバイダによっては、「データ」、「ポイント」、「コンテンツ」、「アドレス」、「IP アドレス」といった用語を使用している場合があります。
SSL 証明書のプロビジョニングを待機する
ドメイン所有権の確認が済むと、ドメインの SSL 証明書がプロビジョニングされ、DNS A レコードが Firebase Hosting を指すようになってから 24 時間以内に、グローバル CDN にデプロイされます。
ドメインは、FirebaseApp SSL 証明書にサブジェクト代替名(SAN)の 1 つとして表示されます。この証明書はブラウザのセキュリティ ツールを使って表示できます。ドメインのプロビジョニング中は、ドメイン名が記載されていない無効な証明書が表示されることがあります。これは、通常プロセスの一部であり、ドメインの証明書が入手可能になると解決します。
詳細設定の場合、プロジェクトの Firebase Hosting ページの設定ステータスが [接続されています] に更新されるまで、ウェブサイトは以前のホスティング プロバイダでホストされます。
カスタム ドメインキー
DNS レコードの追加または編集時に DNS 管理サイト内の [ホスト] フィールドに入力する値は、ドメイン プロバイダごとに異なります。以下に、よく利用されるプロバイダの一般的な入力情報をまとめました。詳細な手順については、ドメイン プロバイダのドキュメントをご覧ください。
ドメインのタイプ |
カスタム ドメインキー |
Apex ドメイン |
一般的な入力情報:
@
- Apex ドメイン名(
example.com など)
- [ホスト] フィールドは空白のままにする
|
サブドメイン |
一般的な入力情報:
- 完全なサブドメイン名(
app.example.com など)
- サブドメイン部分のみ(
app のみで .example.com は除外)
www.example.com のサブドメインには www のみ
|
一般的なドメイン プロバイダ
一般的なドメイン プロバイダと、それぞれに必要な入力の種類は次のとおりです。この情報は可能な限り最新の状態に保たれますが、詳しい手順についてはドメイン プロバイダのドキュメントをご覧ください。
Cloudflare
タイプ |
ホスト |
値 |
DNS TXT レコード入力 |
TXT |
example.com |
Firebase コンソールで提供される検証値 |
DNS A レコード入力 |
A |
example.com |
199.36.158.100 |
A |
www |
199.36.158.100 |
Google Domains
タイプ |
ホスト |
値 |
DNS TXT レコード入力 |
TXT |
@ |
Firebase コンソールで提供される検証値 |
DNS A レコード入力 |
A |
@ |
199.36.158.100 |
A |
www |
199.36.158.100 |
Google Cloud DNS
タイプ |
ホスト |
値 |
DNS TXT レコード入力 |
TXT |
example.com |
Firebase コンソールで提供される検証値 |
DNS A レコード入力 |
A |
example.com |
199.36.158.100 |
A |
www |
199.36.158.100 |
NameCheap
タイプ |
ホスト |
値 |
DNS TXT レコード入力 |
TXT |
@ |
Firebase コンソールで提供される検証値 |
DNS A レコード入力 |
A |
@ |
199.36.158.100 |
A |
@ |
199.36.158.100 |
Squarespace
タイプ |
ホスト |
値 |
DNS TXT レコード入力 |
TXT |
@ |
Firebase コンソールで提供される検証値 |
DNS A レコード入力 |
A |
@ |
199.36.158.100 |
A |
www |
199.36.158.100 |
カスタム ドメインのステータスの説明を設定する
ステータス |
説明 |
設定が必要です |
DNS レコードを使った構成の変更が必要な場合があります。
|
保留中 |
カスタム ドメインを正しく設定しましたが、Firebase Hosting は SSL 証明書をプロビジョニングしていません。
たまに次の問題によって、カスタム ドメインの SSL 証明書の作成が滞ることがあります。
- CAA レコードの制限が厳しすぎます。
トラブルシューティングのヒント: 認証局「letsencrypt.org」と「pki.goog」で、ドメインでの SSL 証明書の作成が許可されていることを確認してください。 - チャレンジ コードが無効です。
詳細設定のフローを使用していて、移行に失敗した場合、トークン(およびそのチャレンジ コード)は無効になります。 トラブルシューティングのヒント: ドメインの [表示] をクリックしてから、既存のドメインに新しいトークンを入力します。
- リクエストした証明書のサブドメイン数が多すぎます。
トラブルシューティングのヒント: SSL 証明書の作成制限により、Firebase Hosting では一般に、1 つの Apex カスタム ドメインあたりのサブドメイン数を 20 以下にすることが推奨されます。
|
接続されています |
カスタム ドメインには適切な DNS レコードがあり、SSL 証明書があります。 自分のサイトのコンテンツを提供できます。
|
再確認が必要です |
Firebase では、最初にドメインの所有権を証明した際に追加した TXT レコードがドメインの DNS 設定から変更または削除された場合、ドメインの所有権を手動で再確認する必要が生じることがあります。
- google-site-verification トークンを使用する複数の TXT レコードが 1 つのドメインで許可されることに注意してください。
- TXT レコードはドメインの所有者であることを証明し、サイトの SSL 証明書の割り当てと更新を Google が行うことを承認するものであるため、常に DNS 設定に保持しておく必要があります。
トラブルシューティングのヒント: プロジェクトの [Hosting] ページにアクセスし、指定された期間内(通常 30 日間)に再確認の手続きを完了して、Firebase Hosting からカスタム ドメインが自動的に接続解除されないようにします。
|