关联自定义网域

使用 Firebase Hosting 时,您不必放弃能够凸显品牌的独有域名。您可以选择不使用 Firebase 生成的网域,而是为托管的网站使用自定义网域(如 example.comapp.example.com)。

Firebase Hosting 会为您的各个网域配置 SSL 证书,并通过全球级 CDN 向用户分发您的内容。

本文档的其余部分将逐步介绍关联自定义网域的操作。

针对 Hosting 设置您的网域

确保您已在项目的 Firebase Hosting 页面中完成了“使用入门”向导中的步骤,这样您的 Firebase 项目中就有一个 Firebase Hosting 网站。

第 1 步:添加自定义网域

  1. 在项目的 Hosting 页面,进入用于关联自定义网域的向导:

    • 如果您只有一个 Hosting 网站,请点击添加自定义网域
    • 如果您有多个 Hosting 网站,请点击查看找到所需网站,然后点击添加自定义网域
  2. 输入您希望与 Hosting 网站关联的自定义域名。

  3. (可选)选中相应的复选框,将针对该自定义网域的所有请求重定向到另一个指定网域(以便让 example.comwww.example.com 重定向到相同的内容)。

  4. 点击继续,以配置您的 DNS 记录并完成自定义网域设置。

第 2 步:设置自定义网域

如果关联网域设置向导中要求验证顶端网域,请进行验证。

以下步骤可确保您的网域尚未与 Firebase 项目关联,并且您对指定网域拥有所有权。

  1. 在域名提供商的网站中,找到 DNS 管理页面。

  2. 输入以下信息添加并保存新记录:

    • 类型:添加 TXT 记录。

      Firebase Hosting 要求您将此 TXT 记录持续保留在您的 DNS 设置中,以证明您对网域的所有权,并授权 Firebase 为您的网站分配和续订 SSL 证书。

      此术语在您的域名提供商处可能显示为“记录类型”。

    • 主机:输入您的顶端网域键

      通过证明您对顶端网域(或根网域)的所有权,证明您对其所有子网域的所有权。

      此术语在您的域名提供商处可能显示为“主机名”“名称”或“网域”。

    • :将唯一验证值复制到该字段中。

      Firebase Hosting 会检查该值,以证明您对网域的所有权。

      此术语在您的域名提供商处可能显示为“数据”。

  3. 等待更新的 TXT 记录传播(最长可能需要 24 小时),然后点击验证

    请注意,您可以点击取消以安全地关闭关联网域窗口,稍后再重新打开。这不会影响传播时间,但重新打开此窗口时,系统将提示您重新输入您的域名

    充分传播后,在 Firebase 控制台的关联网域窗口中点击验证,即可开始 SSL 证书预配过程。

    在大多数情况下,记录的传播和网域的验证将在数小时内完成,具体取决于您的域名提供商。如需详细了解如何添加 TXT 记录和具体的传播时间,请参阅域名提供商的文档。

    如果点击验证后提示错误消息,则表示您的记录尚未传播完成,或者您的值可能不正确。

Firebase 控制台的添加自定义网域向导中,选择快速设置高级设置

快速设置可用于当前未接收流量的新网域或您尝试从其他 Hosting 网站转移的网域。如果您已经有一个在其他托管服务提供商那里接收请求的网域,并且需要零停机迁移,则可以使用高级设置

高级设置向导将帮助您建立 SSL 证书和所有权声明,以允许 Hosting 在接收流量之前处理网域上的流量。

快速设置

  1. Firebase 控制台的添加自定义网域向导将显示必要的记录,这些记录需要更新才能将您的页面指向 Firebase Hosting。输入以下信息,以在您的 DNS 提供商中添加、移除和保存来自您网域的记录:
    • 类型:添加提供的 DNS 记录。
    • 主机:为记录输入您的自定义网域键
    • 您指定的主机是要在其中提供内容的网域;此网域可以是顶端网域,也可以是子网域。

      此术语在您的域名提供商处可能显示为“主机名”“名称”或“网域”。

    • :将提供的 IP 地址分配给记录的值。
    • 此术语在您的域名提供商处可能显示为“数据”“指向”“内容”“地址”或“IP 地址”。

  2. 等待系统配置您的 SSL 证书。 此过程会在您将 DNS 指向 Firebase Hosting 后完成,最长可能需要 24 小时。在大多数情况下,记录的传播和 SSL 证书的预配将在数小时内完成,具体取决于您的域名提供商。

高级设置

通过添加自定义网域向导的高级设置模式,您可以配置 Hosting 以安全地处理您网域的流量,然后您再将流量定向到其服务器。一般来说,Hosting 需要满足以下三项条件才能在网域上成功处理流量:

  • 所有权记录:TXT 记录会告知 Hosting 要在网域上提供哪个网站的内容
  • SSL 证书:网域专用证书,支持 Hosting 服务器与最终用户之间的加密通信
  • 托管 IP 记录:一条或多条 A 和 AAAA 记录,用于将对网域的所有请求定向到 Hosting 服务器

高级设置会引导您配置网域,以允许 Hosting 提前满足前两项要求,以便其能够在开始接收您的网域流量之前提供正确的内容。此向导将此过程表示为一个包含两个步骤的工作流:

  1. 域名准备工作
    • 更新 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 证书并使其传播。

  2. 定向到 Hosting
  3. Hosting 建立您的网域所有权并预配 SSL 证书后,请返回您的 DNS 提供商并添加将请求定向到 Hosting 的 DNS A/AAAA 记录:

    • 类型:添加请求的 DNS A/AAAA 记录。
    • 主机:为这两条记录输入您的自定义网域键。

      您指定的主机是要在其中提供内容的网域;此网域可以是顶端网域,也可以是子网域。此术语在您的域名提供商处可能显示为“主机名”“名称”或“网域”。

    • :为每条 DNS A/AAAA 记录分配一个值,将您的网域指向指定的 IP 地址。

      此术语在您的域名提供商处可能显示为“数据”“指向”“内容”“地址”或“IP 地址”。

等待预配 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 部分

常见的域名提供商

以下是一些常见的域名提供商以及每个提供商可能要求的输入类型。 此部分信息会尽可能及时更新,但详细说明请以域名提供商的文档为准。

类型 主机
DNS TXT 记录输入
TXT example.com Firebase 控制台中提供的验证值
DNS A 记录输入
A example.com 199.36.158.100
A www 199.36.158.100
类型 主机
DNS TXT 记录输入
TXT example.com Firebase 控制台中提供的验证值
DNS A 记录输入
A example.com 199.36.158.100
A www 199.36.158.100
类型 主机
DNS TXT 记录输入
TXT @ Firebase 控制台中提供的验证值
DNS A 记录输入
A @ 199.36.158.100
A www 199.36.158.100
类型 主机
DNS TXT 记录输入
TXT @ Firebase 控制台中提供的验证值
DNS A 记录输入
A @ 199.36.158.100
A www 199.36.158.100

自定义网域的设置状态说明

状态 说明
需要设置

您可能需要更改 DNS 记录的某个配置。

  • 大多数情况下,您的 DNS A 记录没有从域名提供商传播到 Firebase Hosting 服务器。
    问题排查提示:如果已超过 24 小时,请检查您是否已将记录指向 Firebase Hosting

  • 极少数情况下,尤其是当您使用高级设置流程时,SSL 质询可能失败,原因如下:

    • SSL 证书验证失败,令牌(DNS TXT 记录或提供给您的网站的已上传文件)现在无效。
      问题排查提示:点击查看以找到网域,然后为现有网域提供新令牌。
待处理

您正确设置了自定义域名,但 Firebase Hosting 未配置 SSL 证书。

有时,下列问题可能会阻碍系统为自定义网域创建 SSL 证书:

  • 您的 CAA 记录的限制过高。
    问题排查提示:确保允许证书授权机构“letencrypt.org”和“pki.goog”以便为您的网域创建 SSL 证书。
  • 您的质询码无效。
    如果您使用的是高级设置流程,并且迁移失败,则您的令牌(及其质询码)现在无效。
    问题排查提示:点击查看以找到网域,然后为现有网域提供新令牌。
  • 您为过多的子网域请求了证书。
    问题排查提示:通常,由于 SSL 证书创建限制,Firebase Hosting 建议一个顶端自定义网域的子网域不要超过 20 个。
正在创建证书

正在为您的网域生成 SSL 证书。

已连接

您的自定义网域具有正确的 DNS 记录和 SSL 证书。
您可以提供网站的内容。