跳到主要内容

验证 GitHub Pages 的自定义域

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

谁可以使用此功能?

GitHub Pages 可用于具有 GitHub Free 和 GitHub Free for organizations 的公共存储库,以及具有 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 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. 在 GitHub 上任何页面的右上角,单击你的个人资料照片,然后单击设置

  2. 在侧边栏的“代码、规划和自动化”部分,单击 页面

  3. 在右侧,单击添加域名

  4. 在“你想添加哪个域名?”下,输入你希望验证的域名并选择添加域名

    Screenshot of a text box to add a verified domain on GitHub Pages, filled in with "example.com." Below the text is a green button labeled "Add domain."

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

    Screenshot of GitHub Pages instructions to add a TXT record to the DNS configuration of example.com.

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

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

    Screenshot of GitHub Pages settings showing verified domains. Under the horizontal kebab icon to the right, the "Continue verifying" dropdown option is outlined in dark orange.

  8. 要验证您的域名,请单击验证

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

为您的组织站点验证域名

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

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

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

  3. 在侧边栏的“代码、规划和自动化”部分,单击 页面

  4. 在右侧,单击添加域名

  5. 在“你想添加哪个域名?”下,输入你希望验证的域名并选择添加域名

    Screenshot of a text box to add a verified domain on GitHub Pages, filled in with "example.com." Below the text is a green button labeled "Add domain."

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

    Screenshot of GitHub Pages instructions to add a TXT record to the DNS configuration of example.com.

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

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

    Screenshot of GitHub Pages settings showing verified domains. Under the horizontal kebab icon to the right, the "Continue verifying" dropdown option is outlined in dark orange.

  9. 要验证您的域名,请单击验证

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