Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

关联自定义网域

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

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

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

针对 Hosting 设置您的网域

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

第 1 步:添加网域

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

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

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

  4. 点击继续,启动验证过程。

第 2 步:验证网域所有权

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

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

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

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

    • 类型:添加 TXT 记录。

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

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

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

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

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

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

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

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

  3. 等待更新的 TXT 记录生效,最长可能需要 24 小时,然后单击验证

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

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

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

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

第 3 步:上线

在 Firebase 控制台的关联网域窗口中,如果是新网站,则选择快速设置;如果您已有一个在其他托管服务提供商那里运行的网站,且需要零停机迁移,则选择高级设置

等待配置 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 记录的某个配置。

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

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

    • 您的 DNS 记录具有指向其他托管服务提供商的 A 记录或 CNAME 记录。
      问题排查提示:检查您的 A 记录是否仅指向 Firebase Hosting,并移除所有 CNAME 记录。
    • 迁移失败,令牌(DNS TXT 记录或提供给您的网站的已上传文件)现在无效。
      问题排查提示:点击查看以找到网域,然后为现有网域提供新令牌。
待处理

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

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

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

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

需要重新验证

如果出现以下任一情况,Firebase 可能会要求您手动重新验证网域所有权:

  • 在网域的 DNS 设置中更改或移除了最初验证网域所有权时添加的 TXT 记录。
    • 请注意,单个网域上允许带有 google-site-verification 令牌的多个 TXT 记录。
    • 我们要求将 TXT 记录持续保留在您的 DNS 设置中,因为这可以证明您拥有网域,并授权我们为您的网站分配和续订 SSL 证书。
  • 验证网域所有权的人员将不再具有包含验证网域所有权所需的权限的 IAM 角色。这些角色包括 Owner、Editor、Firebase Admin 和 Firebase Develop Admin。
问题排查提示:访问您的项目的 Hosting 页面,在指定时间段(通常为 30 天)内完成重新验证过程,以免自定义网域自动与 Firebase Hosting 解除关联。