关于子域隔离
子域隔离可以减少跨站脚本和其他相关漏洞。 有关详细信息,请参阅维基百科上的“跨站脚本”。 强烈建议在 你的 GitHub Enterprise Server 实例 上启用子域隔离。
启用子域隔离后,GitHub Enterprise Server 会以子域替代多个路径。 启用子域隔离后,尝试访问某些用户提供内容的以前的路径(如 http(s)://HOSTNAME/raw/
)可能会返回 404
错误。
未使用子域隔离的路径 | 使用子域隔离的路径 |
---|---|
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/ |
http(s)://HOSTNAME/notebooks/ | http(s)://notebooks.HOSTNAME/ |
http(s)://HOSTNAME/pages/ | http(s)://pages.HOSTNAME/ |
http(s)://HOSTNAME/raw/ | http(s)://raw.HOSTNAME/ |
http(s)://HOSTNAME/reply/ | http(s)://reply.HOSTNAME/ |
http(s)://HOSTNAME/uploads/ | http(s)://uploads.HOSTNAME/ |
http(s)://HOSTNAME/viewscreen/ | http(s)://viewscreen.HOSTNAME/ |
不支持 | https://containers.HOSTNAME/ |
先决条件
警告:如果禁用子网分隔,建议同时在企业上禁用 GitHub Pages。 无法将用户提供的 GitHub Pages 内容与其余企业数据分隔。 有关详细信息,请参阅“为企业配置 GitHub Pages”。
启用子域隔离之前,您必须为新域配置网络设置。
- 指定有效域名作为主机名,而不是指定 IP 地址。 有关详细信息,请参阅“为实例配置主机名”。
警告:初始设置后不要更改 GitHub Enterprise Server 的主机名。 更改主机名将会导致意外的行为,甚至包括实例中断和用户安全密钥失效。 如果更改了实例的主机名并遇到问题,请联系GitHub Enterprise 支持或GitHub 高级支持。
- 为上文列出的子域设置通配符域名系统 (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”。
启用子域隔离
-
在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击 。
-
如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。
-
在“ 站点管理”边栏中,单击“管理控制台”。
-
在“设置”边栏中,单击“主机名”。
-
选择“子域隔离(建议)”。
-
在“设置”边栏下,单击“保存设置”。
注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。
-
等待配置运行完毕。