Skip to main content

启用子域隔离

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

关于子域隔离

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

启用子域隔离后,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/
https://HOSTNAME/http(s)://docker.HOSTNAME/
https://HOSTNAME/_registry/npm/https://npm.HOSTNAME/
https://HOSTNAME/_registry/rubygems/https://rubygems.HOSTNAME/
https://HOSTNAME/_registry/maven/https://maven.HOSTNAME/
https://HOSTNAME/_registry/nuget/https://nuget.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. 在左侧边栏中,单击“管理控制台”。 左侧边栏中的 管理控制台 选项卡 3. 在左侧边栏中,单击“主机名”。 “设置”边栏中的“主机名”选项卡

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

    管理控制台 中的“保存设置”按钮的屏幕截图

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

  4. 等待配置运行完毕。

    配置实例

上一个指南排查 TLS 错误下一个指南访问管理 shell (SSH)