Skip to main content

Enabling subdomain isolation

You can set up subdomain isolation to securely separate user-supplied content from other portions of your GitHub Enterprise Server appliance.

About subdomain isolation

Subdomain isolation mitigates cross-site scripting and other related vulnerabilities. For more information, see "Cross-site scripting" on Wikipedia. We highly recommend that you enable subdomain isolation on your GitHub Enterprise Server instance.

When subdomain isolation is enabled, GitHub Enterprise Server replaces several paths with subdomains. After enabling subdomain isolation, attempts to access the previous paths for some user-supplied content, such as http(s)://HOSTNAME/raw/, may return 404 errors.

Note: The http(s)://render.HOSTNAME subdomain is deprecated in GitHub Enterprise Server 3.7 and later. After you upgrade to 3.7 or later, ensure that your TLS certificate covers the subdomains for the replacement services, http(s)://notebook.HOSTNAME and http(s)://viewscreen.HOSTNAME.

Path without subdomain isolationPath with subdomain isolation
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/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/
Not supportedhttps://containers.HOSTNAME/

Prerequisites

警告: Subdomain Isolation を無効化している場合は、エンタープライズの GitHub Pages も無効化することをおすすめします。 ユーザが提供するGitHub Pagesのコンテンツをその他のEnterpriseのデータから分離しておく方法はありません。 詳細については、「エンタープライズで GitHub Pages を構成する」を参照してください。

Before you enable subdomain isolation, you must configure your network settings for your new domain.

  • Specify a valid domain name as your hostname, instead of an IP address. For more information, see "Configuring a hostname."

警告: 初期セットアップ後に GitHub Enterprise Server のホスト名を変更しないでください。 ホスト名を変更すると、インスタンスの停止に及ぶ予想外の動作が生じます。

  • Set up a wildcard Domain Name System (DNS) record or individual DNS records for the subdomains listed above. We recommend creating an A record for *.HOSTNAME that points to your server's IP address so you don't have to create multiple records for each subdomain.
  • Get a wildcard Transport Layer Security (TLS) certificate for *.HOSTNAME with a Subject Alternative Name (SAN) for both HOSTNAME and the wildcard domain *.HOSTNAME. For example, if your hostname is github.octoinc.com, get a certificate with the Common Name value set to *.github.octoinc.com and a SAN value set to both github.octoinc.com and *.github.octoinc.com.
  • Enable TLS on your appliance. For more information, see "Configuring TLS."

Enabling subdomain isolation

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。

    サイト管理者設定にアクセスするための宇宙船アイコンのスクリーンショット

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

    [サイト管理者] リンクのスクリーンショット

  3. 左側のサイドバーで、 [Management Console] をクリックします。 左側のサイドバーの [[Management Console]] タブ

  4. 左側のサイドバーで、 [ホスト名] をクリックします。 設定サイドバーの [ホスト名] タブ

  5. Select Subdomain isolation (recommended). Checkbox to enable subdomain isolation

  6. 左側のサイドバーで、 [設定の保存] をクリックします。

    [Management Console] の [設定の保存] ボタンのスクリーンショット

    注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。

  7. 設定の実行が完了するのを待ってください。

    インスタンスの設定