Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

启用子域隔离

您可以设置子域隔离,将用户提供的内容与 GitHub Enterprise Server 设备的其他部分安全地隔离。

关于子域隔离

子域隔离可以减少跨站脚本和其他相关漏洞。 有关详细信息,请参阅维基百科上的“跨站脚本”。 强烈建议在 your GitHub Enterprise Server instance 上启用子域隔离。

启用子域隔离后,GitHub Enterprise Server 会以子域替代多个路径。 启用子域隔离后,尝试访问某些用户提供内容的以前的路径(如 http(s)://HOSTNAME/raw/)可能会返回 404 错误。

注意:http(s)://notebook.HOSTNAMEhttp(s)://viewscreen.HOSTNAME 子域是 GitHub Enterprise Server 3.7 及更高版本中的新增内容,可替换 http(s)://render.HOSTNAME。 升级到 3.7 或更高版本后,TLS 证书必须涵盖替换服务的子域,http(s)://notebook.HOSTNAMEhttp(s)://viewscreen.HOSTNAME

未使用子域隔离的路径使用子域隔离的路径
http(s)://HOSTNAME/http(s)://docker.HOSTNAME/
http(s)://HOSTNAME/_registry/npm/https://npm.HOSTNAME/
http(s)://HOSTNAME/_registry/rubygems/https://rubygems.HOSTNAME/
http(s)://HOSTNAME/_registry/maven/https://maven.HOSTNAME/
http(s)://HOSTNAME/_registry/nuget/https://nuget.HOSTNAME/
http(s)://HOSTNAME/assets/http(s)://assets.HOSTNAME/
http(s)://HOSTNAME/avatars/http(s)://avatars.HOSTNAME/
http(s)://HOSTNAME/codeload/http(s)://codeload.HOSTNAME/
http(s)://HOSTNAME/gist/http(s)://gist.HOSTNAME/
http(s)://HOSTNAME/media/http(s)://media.HOSTNAME/

先决条件

警告:如果禁用子网分隔,建议同时在企业上禁用 GitHub Pages。 无法将用户提供的 GitHub Pages 内容与其余企业数据分隔。 有关详细信息,请参阅“为企业配置 GitHub Pages”。

启用子域隔离之前,您必须为新域配置网络设置。

  • 指定有效域名作为主机名,而不是指定 IP 地址。 有关详细信息,请参阅“配置主机名”。

警告:初始设置后不要更改 GitHub Enterprise Server 的主机名。 更改主机名将会导致意外的行为,甚至包括实例中断。

  • 为上文列出的子域设置通配符域名系统 (DNS) 记录或单独的 DNS 记录。 建议为指向服务器 IP 地址的 *.HOSTNAME 创建一条 A 记录,从而无需为各个子域创建多条记录。
  • *.HOSTNAME 获取一个使用者可选名称 (SAN) 同时适用于 HOSTNAME 和通配符域 *.HOSTNAME 的通配符传输层安全 (TLS) 证书。 例如,如果主机名为 github.octoinc.com,则获取一个公用名值设为 *.github.octoinc.com、SAN 值同时设为 github.octoinc.com*.github.octoinc.com 的证书。
  • 在设备上启用 TLS。 有关详细信息,请参阅“配置 TLS”。

启用子域隔离

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“Management Console”。 左侧边栏中的 Management Console 选项卡 3. 在左侧边栏中,单击“主机名”。 “设置”边栏中的“主机名”选项卡

  3. 选择“子域隔离(建议)”。 用于启用子域隔离的复选框 1. 在左侧边栏下,单击“保存设置”。

    Management Console 中的“保存设置”按钮的屏幕截图

    注意:保存 Management Console 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  4. 等待配置运行完毕。

    配置实例