转到控制台

关联自定义网域

使用 Firebase 托管时,您不必放弃凸显品牌的独一无二的域名。您可以不将 Firebase 生成的网域关联到 Firebase 托管网站,而是关联自定义网域(如 yourdomain.comapp.yourdomain.com)。

Firebase 托管会为您的各个网域预配 SSL 证书,并通过全球级 CDN 向用户提供您的内容。

通常,由于 SSL 证书创建限制,Firebase 托管建议任何顶端 (apex) 自定义网域的子网域不要超过 20 个。

针对 Firebase 托管设置您的网域

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

第 1 步:添加网域

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

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

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

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

第 2 步:验证网域所有权

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

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

  1. 在域名提供商的网站中,找到 DNS 管理页面。通过输入以下信息,添加并保存新纪录:

    • 类型:添加 TXT 记录。

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

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

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

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

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

    • :将唯一验证值复制到该字段中。Firebase 托管会检查该值,以证明您对网域的所有权。

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

  2. 等待更新的 TXT 记录传播,最长可能需要 24 小时。

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

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

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

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

第 3 步:上线

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

等待预配 SSL 证书

验证网域所有权后,我们将为您的网域预配 SSL 证书,并在您将 DNS A 记录指向 Firebase 托管后的 24 小时内在我们的全球级 CDN 上进行部署。

您的网域将在 FirebaseApp SSL 证书中作为一个主题备用名称 (SAN) 列出。您可以使用浏览器的安全工具查看此证书。在网域预配过程中,您可能会看到未包含您的域名的无效证书。这是此流程的正常环节,在您的网域证书有效后便会恢复正常。

对于高级设置用户,您的网站将由之前的托管提供商托管,直到您的项目的 Firebase 托管页面中的设置状态更新为已关联

您的自定义网域密钥

添加或修改 DNS 记录时,不同的域名提供商要求您在其 DNS 管理网站中的主机字段输入的信息不同。我们在下方汇总了来自常见提供商的常见输入。如需了解详情,请参阅域名提供商的文档。

网域类型 自定义网域密钥
顶端网域

常见输入包括:

  • @

  • 顶端域名 (yourdomain.com)。

  • 主机字段留空。

子网域

常见输入包括:

  • 子域名 (app.yourdomain.com)。
  • 仅子网域部分(app,省略 .yourdomain.com)。
    • 一个常见的用例是输入 www 作为子网域 www.yourdomain.com 的键。

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

状态 说明
需要设置

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

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

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

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

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

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

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

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

需要重新验证

仅当发生以下两种情况时,Firebase 才会要求您在初始设置阶段后手动重新验证网域所有权:

  • 在网域的 DNS 设置中更改或移除了第 2 步中的 TXT 记录。
    • 请注意,单个网域上允许带有 google-site-verification 令牌的多个 TXT 记录。
    • 我们要求将 TXT 记录持续保留在您的 DNS 设置中,因为这可以证明您拥有网域,并授权我们为您的网站分配和续订 SSL 证书。
  • 证明了网域所有权的人员已从项目中移除。
问题排查提示:访问您的项目的“托管”页面,在指定时间段(通常为 30 天)内完成重新验证过程,以免网域从托管控制台中自动移除。