跳至主要内容

验证您的 GitHub Pages 自定义域名

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

哪些用户可以使用此功能?

GitHub Pages 可用于包含 GitHub 免费版和 GitHub 免费组织版的公共仓库,以及包含 GitHub 专业版、GitHub 团队版、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。有关详细信息,请参阅“GitHub 的方案”。

GitHub Pages 现在使用 GitHub Actions 执行 Jekyll 构建。当使用分支作为构建源时,如果您想使用内置 Jekyll 工作流程,则必须在您的仓库中启用 GitHub Actions。或者,如果 GitHub Actions 不可用或已禁用,则将.nojekyll文件添加到源分支的根目录将绕过 Jekyll 构建过程并直接部署内容。有关启用 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 网站。在这种情况下,该域名将立即从其他用户或组织拥有的 GitHub Pages 网站中释放。如果您尝试验证已验证的域名(由其他用户或组织验证),则释放过程将不会成功。

验证用户站点的域名

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

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

  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. 在侧边栏的“代码、规划和自动化”部分,单击 Pages

  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 配置中。