您不必放棄使用 Firebase Hosting 的獨特品牌網域名稱。您可以使用自訂網域 (例如 example.com
或 app.example.com
),而非 Firebase 產生的網域,用於 Firebase 託管的網站。
Firebase Hosting 會為每個網域佈建 SSL 憑證,並透過全球 CDN 提供內容。
本文件的後續內容會逐步說明如何連結自訂網域。
為 Hosting 設定網域
請確認您已完成專案 Firebase Hosting 頁面中的「開始使用」精靈,以便在 Firebase 專案中建立 Firebase Hosting 網站。
步驟 1:新增自訂網域
在專案的 Hosting 頁面中,輸入連結自訂網域的輔助程式:
- 如果您只有一個 Hosting 網站,請按一下「新增自訂網域」。
- 如果您有多個 Hosting 網站,請依序按一下所需網站的「查看」和「新增自訂網域」。
輸入要連結至 Hosting 網站的自訂網域名稱。
(選用) 勾選這個方塊,即可將自訂網域上的所有要求重新導向至第二個指定網域 (例如將 example.com
和 www.example.com
重新導向至相同內容)。
按一下「繼續」,即可設定 DNS 記錄並完成自訂網域的設定。
步驟 2:設定自訂網域
如果「連結網域」設定精靈要求,請驗證頂層網域。
這些步驟可確保您的網域未與 Firebase 專案連結,且您擁有指定的網域。
在網域供應商的網站中,找出 DNS 管理頁面。
使用下列輸入內容新增並儲存新記錄:
類型:新增 TXT 記錄。
Firebase Hosting 要求您持續在 DNS 設定中保留這個 TXT 記錄,以證明您擁有該網域,並授權 Firebase 為您的網站指派及更新 SSL 憑證。
您的網域供應商可能會將這個詞彙列為「記錄類型」。
Host:輸入頂層網域金鑰。
證明您是頂層網域 (或根網域) 的擁有者,就等於證明您擁有所有子網域。
網域供應商可能會將這個字詞列為「主機名稱」、「名稱」或「網域」。
值:將專屬驗證值複製到欄位中。
Firebase Hosting 會檢查這個值,證明您擁有網域。
您的網域供應商可能會將這項條款列為「資料」。
更新的 TXT 記錄最多需要 24 小時才能完成散布,請耐心等候,然後點選「驗證」。
請注意,您可以點選「取消」來安全關閉「連結網域」視窗,並在稍後重新開啟。這不會影響更新時間,但重新開啟視窗時,系統會提示您重新輸入網域名稱。
在充分的傳播時間過後,您可以按一下 Firebase 主控台「Connect Domain」視窗中的「Verify」,開始 SSL 憑證佈建程序。
在大多數情況下,記錄會在幾小時內完成傳播,網域也會在幾小時內完成驗證,具體時間視網域供應商而定。如需新增 TXT 記錄和設定傳播時間的詳細操作說明,請參閱網域供應商的說明文件。
如果點選「驗證」後出現錯誤訊息,表示您的記錄尚未套用,或是值可能有誤。
在 Firebase 控制台的「Add Custom Domain」精靈中,選取「Quick Setup」或「Advanced Setup」。
快速設定可用於目前未接收流量的新網域,或是您嘗試從其他 Hosting 網站轉移的網域。如果您已在其他代管服務供應商的服務器上建立網域,並需要進行零停機遷移,則可以使用進階設定。
進階設定精靈可協助您建立 SSL 憑證和擁有權聲明,讓 Hosting 在接收流量之前,先在網域上提供流量。
快速設定
- Firebase 控制台的「Add Custom Domain」精靈會顯示需要更新的必要記錄,以便將網頁指向 Firebase Hosting。使用下列輸入內容,在 DNS 供應商中新增、移除及儲存網域記錄:
- 類型:新增提供的 DNS 記錄。
- 主機:輸入記錄的自訂網域金鑰。
您指定的主機是您要用來提供內容的網域,這個網域可以是頂層網域或子網域。
您的網域供應商可能會將這個字詞列為「主機名稱」、「名稱」或「網域」。
- 值:將提供的 IP 位址指派給記錄的值。
網域供應商可能會將這項條件列為「資料」、「指向」、「內容」、「位址」或「IP 位址」。
- 請留出時間讓SSL 憑證完成佈建。
將 DNS 指向 Firebase Hosting 後,這項作業最多可能需要 24 小時才能完成。在大多數情況下,記錄會在幾小時內傳播,安全資料傳輸層 (SSL) 憑證也會在幾小時內佈建,具體時間取決於網域供應商。
進階設定
您可以透過「Add Custom Domain」精靈的「進階」設定模式,在將流量導向伺服器之前,先設定 Hosting,以便安全地提供網域服務。一般來說,Hosting需要三個條件,才能在網域上成功放送流量:
- 擁有權記錄:TXT 記錄會告訴 Hosting 在網域上要放送哪個網站
- SSL 憑證:特定網域的憑證,可在 Hosting 伺服器和使用者之間進行加密通訊
- 代管 IP 記錄:一或多個 A 和 AAAA 記錄,將網域的所有要求導向 Hosting 伺服器
進階設定會引導您設定網域,讓 Hosting 預先處理前兩項規定,以便在開始接收網域流量前,就能夠提供正確的內容。這個精靈會將這項程序以兩個步驟的工作流程表示:
- 準備網域
- 更新 DNS 記錄:將一或多個記錄新增至網域:
- 擁有權:TXT 記錄的格式為 `hosting-site=[site_id]`。
- CAA (選用):一組 CAA 記錄,可讓 Hosting 的憑證授權單位為您的網域產生 SSL 憑證。只有在 Hosting 發現現有的 CAA 記錄會阻止其佈建憑證時,才會顯示。
- 設定 SSL 憑證:精靈會提供 ACME 挑戰,Hosting 的憑證授權單位會使用這項挑戰為您的網域建立 SSL 憑證。您可以選擇 DNS 或 HTTP 驗證:
- DNS 挑戰:前往網域供應商的 DNS 管理網站。新增含有 ACME 挑戰子網域金鑰和提供值的 TXT 記錄。TXT 記錄最多可能需要 24 小時才會生效。
- HTTP 挑戰:將提供的文字檔上傳至現有網站的指定網址,並驗證檔案是否存在。
Hosting 會先嘗試驗證 ACME 挑戰,再向 CA 要求驗證。如果 CA 因任何原因 (例如服務間歇性問題) 無法驗證您的挑戰,Hosting 必須為您產生一組新的挑戰。驗證成功後,Hosting 最多可能需要幾小時才能佈建 SSL 憑證,並允許憑證傳播。
- 直接前往 Hosting
Hosting 建立網域擁有權並佈建 SSL 憑證後,請返回 DNS 供應商,並新增 DNS A/AAAA 記錄,將要求導向 Hosting:
等待 SSL 憑證佈建
驗證網域擁有權後,我們會為您的網域佈建安全資料傳輸層 (SSL) 憑證,並在您將 DNS A 記錄指向 Firebase Hosting 後的 24 小時內,在全球 CDN 中部署該憑證。
您的網域會列為 FirebaseApp SSL 憑證中的其中一個主體別名 (SAN)。您可以使用瀏覽器的安全性工具查看這項憑證。在網域佈建期間,您可能會看到不含網域名稱的無效憑證。這是正常的程序,在網域憑證可用後就會解決。
對於進階設定使用者,您的網站會由先前的代管服務供應商代管,直到專案 Firebase Hosting 頁面的設定狀態更新為「已連線」為止。
您的自訂網域金鑰
新增或編輯 DNS 記錄時,不同網域供應商會要求您在 DNS 管理網站中,針對「Host」欄位輸入不同的內容。以下列出常見的輸入內容,供您參考。如需詳細操作說明,請參閱網域供應商的說明文件。
網域類型 |
自訂網域鍵 |
Apex 網域 |
常見的輸入內容包括:
@
- 頂層網域名稱 (例如
example.com )
- 將「Host」欄位留空
|
子網域 |
常見的輸入內容包括:
- 完整子網域名稱 (例如
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 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 |
www |
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 一般建議在一個頂層自訂網域中,最多只能有 20 個子網域。
|
正在建立憑證 |
系統正在為您的網域產生安全資料傳輸層 (SSL) 憑證。
|
已連結 |
您的自訂網域具備正確的 DNS 記錄,且有 SSL 憑證。
您可以提供網站內容。
|