Skip to main content

验证 GitHub Pages 的自定义域

您可以通过验证您的域来提高自定义域的安全性并避免接管攻击。

谁可以使用此功能?

GitHub Pages 适用于具有 GitHub Free 和组织的 GitHub Free 的公共存储库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和专用存储库。 有关详细信息,请参阅“GitHub 的计划”。

从 2024 年 6 月 30 日起,所有 GitHub Pages 版本都将使用 GitHub Actions。 无需进行其他更改,但必须在存储库中启用 GitHub Actions 才能继续构建。 有关 GitHub Actions 运行器的详细信息,请参阅“管理存储库的 GitHub Actions 设置”。

关于 GitHub Pages 的域验证

验证个人帐户的自定义域时,只能使用个人帐户拥有的存储库将 GitHub Pages 站点发布到已验证的自定义域或域的直接子域。 同样,验证组织的自定义域时,只能使用组织拥有的存储库将 GitHub Pages 站点发布到已验证的自定义域或域的直接子域。

验证您的域会阻止其他 GitHub 用户接管您的自定义域并使用它来发布他们自己的 GitHub Pages 站点。 当您删除存储库、降低计费计划级别时,或者在取消链接自定义域或禁用 GitHub Pages 而域仍配置为 GitHub Pages 且未进行验证的任何其他更改之后,可能会发生域接管。

验证域时,验证中还会包含任何直接子域。 例如,如果已验证 github.com 自定义域,docs.github.comsupport.github.com 和任何其他直接子域也将受到保护,以防止被接管。

警告:我们强烈建议勿使用通配符 DNS 记录,例如 *.example.com。 即使验证域,这些记录也会立即面临域接管风险。 例如,如果验证 example.com,这会阻止某人使用 a.example.com,但他们仍可以接管 b.a.example.com(由通配符 DNS 记录所涵盖)。 有关详细信息,请参阅“验证 GitHub Pages 的自定义域”。

还可以验证组织的域,这会在组织 配置文件。 有关详细信息,请参阅“验证或批准您组织的域”。

验证已获取的域

如果你正在验证自己拥有的域(当前正在由其他用户或组织使用),以使其可用于你的 GitHub Pages 网站,则请注意,需要 7 天才能完成从当前位置释放域的过程。 如果尝试验证已通过验证的域(已由其他用户或组织验证),则释放过程不会成功。

验证用户站点的域

  1. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. 在边栏的“代码、规划和自动化”部分中,单击“ Pages”。

  3. 在右侧,单击“添加域”。

  4. 在“要添加什么域?”下,输入要验证的域,然后选择“添加域”。

    用于在 GitHub Pages 上添加已验证域的文本框的屏幕截图,其中填充了“example.com”。 文本下方是一个标有“添加域”的绿色按钮。

  5. 按照“添加 DNS TXT 记录”下的说明,使用域托管服务创建 TXT 记录。

    用于将 TXT 记录添加到 example.com 的 DNS 配置的 GitHub Pages 说明的屏幕截图。

  6. 等待您的 DNS 配置更改,这可能是立即更改或最多需要 24 小时。 可以通过在命令行上运行 dig 命令来确认对 DNS 配置的更改。 在以下命令中,将 USERNAME 替换为你的用户名,将 example.com 替换为要验证的域。 如果您的 DNS 配置已更新,您应该会在输出中看到新的 TXT 记录。

    dig _github-pages-challenge-USERNAME.example.com +nostats +nocomments +nocmd TXT
    
  7. 确认 DNS 配置已更新后,可以验证域。 如果更改不是立即进行的,并且你已离开上一页,请按照最初的几个步骤返回“页面”设置,在域右侧单击 ,然后单击“继续验证”。

    显示已验证域的 GitHub Pages 设置的屏幕截图。 在右侧的水平烤肉串图标下,“继续验证”下拉列表选项用深橙色框出。

  8. 若要验证该域,请单击“验证”。

  9. 若要确保自定义域保持验证状态,请将 TXT 记录保留在域的 DNS 配置中。

验证组织站点的域

组织所有者可以验证其组织的自定义域。

  1. 在 GitHub 的右上角,选择个人资料照片,然后单击 你的组织”。

  2. 在组织旁边,单击“设置”。

  3. 在边栏的“代码、规划和自动化”部分中,单击“ Pages”。

  4. 在右侧,单击“添加域”。

  5. 在“要添加什么域?”下,输入要验证的域,然后选择“添加域”。

    用于在 GitHub Pages 上添加已验证域的文本框的屏幕截图,其中填充了“example.com”。 文本下方是一个标有“添加域”的绿色按钮。

  6. 按照“添加 DNS TXT 记录”下的说明,使用域托管服务创建 TXT 记录。

    用于将 TXT 记录添加到 example.com 的 DNS 配置的 GitHub Pages 说明的屏幕截图。

  7. 等待 DNS 配置更改。 这可能是立即更改或最多需要 24 小时。 可以通过在命令行上运行 dig 命令来确认对 DNS 配置的更改。 在以下命令中,将 ORGANIZATION 替换为组织的名称,将 example.com 替换为要验证的域。 如果您的 DNS 配置已更新,您应该会在输出中看到新的 TXT 记录。

    dig _github-pages-challenge-ORGANIZATION.example.com +nostats +nocomments +nocmd TXT
    
  8. 确认 DNS 配置已更新后,可以验证域。 如果更改不是立即进行的,并且你已离开上一页,请按照最初的几个步骤返回“页面”设置,在域右侧单击 ,然后单击“继续验证”。

    显示已验证域的 GitHub Pages 设置的屏幕截图。 在右侧的水平烤肉串图标下,“继续验证”下拉列表选项用深橙色框出。

  9. 若要验证该域,请单击“验证”。

  10. 若要确保自定义域保持验证状态,请将 TXT 记录保留在域的 DNS 配置中。