Перейти к консоли

关联自定义网域

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

Firebase 托管会为您的各个网域预配 SSL 证书(经过 Let's Encrypt 签名),并通过全球级 CDN 向用户提供您的内容。

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

针对 Firebase 托管设置您的网域

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

第 1 步:添加网域

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

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

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

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

第 2 步:验证网域所有权

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

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

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

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

    • 类型:添加 TXT 记录。

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

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

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

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

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

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

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

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

  3. 等待更新的 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 设置中更改或移除了最初验证网域所有权时添加的 TXT 记录。
    • 请注意,单个网域上允许带有 google-site-verification 令牌的多个 TXT 记录。
    • 我们要求将 TXT 记录持续保留在您的 DNS 设置中,因为这可以证明您拥有网域,并授权我们为您的网站分配和续订 SSL 证书。
  • 证明了网域所有权的人员已作为 Firebase 项目成员被移除了。
问题排查提示:访问您的项目的托管页面,在指定时间段(通常为 30 天)内完成重新验证过程,以免自定义网域自动与 Firebase 托管解除关联。