使用 Firebase Hosting 时,您不必放弃能够凸显品牌的独有域名。您可以选择不使用 Firebase 生成的网域,而是为托管的网站使用自定义网域(如 example.com
或 app.example.com
)。
Firebase Hosting 会为您的各个网域配置 SSL 证书,并通过全球级 CDN 向用户分发您的内容。
![](https://firebase.google.cn/static/docs/hosting/images/custom-domain.png?authuser=5&hl=sv)
本文档的其余部分将逐步介绍关联自定义网域的操作。
针对 Hosting 设置您的网域
确保您已在项目的 Firebase Hosting 页面中完成了“使用入门”向导中的步骤,这样您的 Firebase 项目中就有一个 Firebase Hosting 网站。
第 1 步:添加自定义网域
在项目的 Hosting 页面,进入用于关联自定义网域的向导:
- 如果您只有一个 Hosting 网站,请点击添加自定义网域。
- 如果您有多个 Hosting 网站,请点击查看找到所需网站,然后点击添加自定义网域。
输入您希望与 Hosting 网站关联的自定义域名。
(可选)选中相应的复选框,将针对该自定义网域的所有请求重定向到另一个指定网域(以便让 example.com
和 www.example.com
重定向到相同的内容)。
点击继续,以配置您的 DNS 记录并完成自定义网域设置。
第 2 步:设置自定义网域
如果关联网域设置向导中要求验证顶端网域,请进行验证。
以下步骤可确保您的网域尚未与 Firebase 项目关联,并且您对指定网域拥有所有权。
在域名提供商的网站中,找到 DNS 管理页面。
输入以下信息添加并保存新记录:
类型:添加 TXT 记录。
Firebase Hosting 要求您将此 TXT 记录持续保留在您的 DNS 设置中,以证明您对网域的所有权,并授权 Firebase 为您的网站分配和续订 SSL 证书。
此术语在您的域名提供商处可能显示为“记录类型”。
主机:输入您的顶端网域键。
通过证明您对顶端网域(或根网域)的所有权,证明您对其所有子网域的所有权。
此术语在您的域名提供商处可能显示为“主机名”“名称”或“网域”。
值:将唯一验证值复制到该字段中。
Firebase Hosting 会检查该值,以证明您对网域的所有权。
此术语在您的域名提供商处可能显示为“数据”。
等待更新的 TXT 记录传播(最长可能需要 24 小时),然后点击验证。
请注意,您可以点击取消以安全地关闭关联网域窗口,稍后再重新打开。这不会影响传播时间,但重新打开此窗口时,系统将提示您重新输入您的域名。
充分传播后,在 Firebase 控制台的关联网域窗口中点击验证,即可开始 SSL 证书预配过程。
在大多数情况下,记录的传播和网域的验证将在数小时内完成,具体取决于您的域名提供商。如需详细了解如何添加 TXT 记录和具体的传播时间,请参阅域名提供商的文档。
如果点击验证后提示错误消息,则表示您的记录尚未传播完成,或者您的值可能不正确。
在 Firebase 控制台的添加自定义网域向导中,选择快速设置或高级设置。
快速设置可用于当前未接收流量的新网域或您尝试从其他 Hosting 网站转移的网域。如果您已经有一个在其他托管服务提供商那里接收请求的网域,并且需要零停机迁移,则可以使用高级设置。
高级设置向导将帮助您建立 SSL 证书和所有权声明,以允许 Hosting 在接收流量之前处理网域上的流量。
快速设置
- Firebase 控制台的添加自定义网域向导将显示必要的记录,这些记录需要更新才能将您的页面指向 Firebase Hosting。输入以下信息,以在您的 DNS 提供商中添加、移除和保存来自您网域的记录:
- 类型:添加提供的 DNS 记录。
- 主机:为记录输入您的自定义网域键。
您指定的主机是要在其中提供内容的网域;此网域可以是顶端网域,也可以是子网域。
此术语在您的域名提供商处可能显示为“主机名”“名称”或“网域”。
- 值:将提供的 IP 地址分配给记录的值。
此术语在您的域名提供商处可能显示为“数据”“指向”“内容”“地址”或“IP 地址”。
- 等待系统配置您的 SSL 证书。
此过程会在您将 DNS 指向 Firebase Hosting 后完成,最长可能需要 24 小时。
在大多数情况下,记录的传播和 SSL 证书的预配将在数小时内完成,具体取决于您的域名提供商。
高级设置
通过添加自定义网域向导的高级设置模式,您可以配置 Hosting 以安全地处理您网域的流量,然后您再将流量定向到其服务器。一般来说,Hosting 需要满足以下三项条件才能在网域上成功处理流量:
- 所有权记录:TXT 记录会告知 Hosting 要在网域上提供哪个网站的内容
- SSL 证书:网域专用证书,支持 Hosting 服务器与最终用户之间的加密通信
- 托管 IP 记录:一条或多条 A 和 AAAA 记录,用于将对网域的所有请求定向到 Hosting 服务器
高级设置会引导您配置网域,以允许 Hosting 提前满足前两项要求,以便其能够在开始接收您的网域流量之前提供正确的内容。此向导将此过程表示为一个包含两个步骤的工作流:
- 域名准备工作
- 更新 DNS 记录:为您的网域添加一条或多条记录:
- 所有权:格式为“hosting-site=[site_id]”的 TXT 记录。
- CAA(可选):允许 Hosting 的证书授权机构为您的网域创建 SSL 证书的一对 CAA 记录。仅当 Hosting 发现了阻止其预配证书的现有 CAA 记录时,此字段才会显示。
- 设置 SSL 证书:向导会提供一项 ACME 质询,Hosting 的证书授权机构将使用该质询为您的网域创建 SSL 证书。您可以选择 DNS 或 HTTP 验证:
- DNS 验证:访问域名提供商的 DNS 管理网站。使用 ACME 验证子网域键和所提供的值来添加一条 TXT 记录。等待您的 TXT 记录传播,最长可能需要 24 小时。
- HTTP 验证:将提供的文本文件上传到指定网址的现有网站,并验证其存在。
在向 CA 请求验证之前,Hosting 会尝试验证 ACME 质询本身。如果该 CA 因任何原因(例如间歇性服务问题)未能验证您的质询,Hosting 将不得不为您生成一组新的质询。验证成功后,Hosting 最多可能需要几个小时才能预配 SSL 证书并使其传播。
- 直接转到 Hosting
Hosting 建立您的网域所有权并预配 SSL 证书后,请返回您的 DNS 提供商并添加将请求定向到 Hosting 的 DNS A/AAAA 记录:
等待预配 SSL 证书
验证网域所有权后,我们将为您的网域预配 SSL 证书,并在您将 DNS A 记录指向 Firebase Hosting 后的 24 小时内,在我们的全球级 CDN 上部署该证书。
您的网域将在 FirebaseApp SSL 证书中作为一个主题备用名称 (SAN) 列出。您可以使用浏览器的安全工具查看此证书。在网域预配过程中,您可能会看到未包含您的域名的无效证书。这是此流程的正常环节,在您的网域证书有效后便会恢复正常。
对于高级设置用户,您的网站将由之前的托管服务提供商托管,直到您的项目的 Firebase Hosting 页面中的设置状态更新为已关联。
您的自定义网域键
添加或修改 DNS 记录时,不同的域名提供商要求您在其 DNS 管理网站中的主机字段输入的信息不同。我们在下方汇总了常见提供商通常会要求您输入的内容。
如需了解详情,请参阅域名提供商的文档。
网域类型 |
自定义网域键 |
顶端网域 |
常见输入包括:
@
- 顶端域名(例如
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 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 记录的限制过高。
问题排查提示:确保允许证书授权机构“letencrypt.org”和“pki.goog”以便为您的网域创建 SSL 证书。 - 您的质询码无效。
如果您使用的是高级设置流程,并且迁移失败,则您的令牌(及其质询码)现在无效。 问题排查提示:点击查看以找到网域,然后为现有网域提供新令牌。 - 您为过多的子网域请求了证书。
问题排查提示:通常,由于 SSL 证书创建限制,Firebase Hosting 建议一个顶端自定义网域的子网域不要超过 20 个。
|
正在创建证书 |
正在为您的网域生成 SSL 证书。
|
已连接 |
您的自定义网域具有正确的 DNS 记录和 SSL 证书。 您可以提供网站的内容。 |