此版本的 GitHub Enterprise 已停止服务 2021-06-09. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

启用子域隔离

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

关于子域隔离

子域隔离可以减少跨站脚本和其他相关漏洞。 更多信息请参阅 Wikipedia 上的“跨站脚本”。 我们强烈建议在 您的 GitHub Enterprise Server 实例 上启用子域隔离。

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

未使用子域隔离的路径使用子域隔离的路径
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/
http(s)://HOSTNAME/pages/http(s)://pages.HOSTNAME/
http(s)://HOSTNAME/raw/http(s)://raw.HOSTNAME/
http(s)://HOSTNAME/render/http(s)://render.HOSTNAME/
http(s)://HOSTNAME/reply/http(s)://reply.HOSTNAME/
http(s)://HOSTNAME/uploads/http(s)://uploads.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. 在左侧边栏中,单击 管理控制台左侧边栏中的 管理控制台 选项卡
  3. 在左侧边栏中,单击 Hostname(主机名)设置侧边栏中的主机名选项卡
  4. 选择 Subdomain isolation (recommended)启用子域隔离的复选框
  5. 在左侧边栏下,单击 Save settings(保存设置)管理控制台 中的 Save settings 按钮
  6. 等待配置运行完毕。