Subdomain Isolationについて
Subdomain Isolationは、クロスサイトスクリプティングや関連するその他の脆弱性を緩和します。 詳しくは、Wikipedia の「クロスサイト スクリプティング」をご覧ください。 お使いの GitHub Enterprise Server インスタンスで Subdomain Isolation を有効にすることを強くお勧めします。
Subdomain Isolation が有効な場合、GitHub Enterprise Server はいくつかのパスをサブドメインで置き換えます。 Subdomain Isolation を有効にした後は、ユーザーが提供した何らかのコンテンツに対する以前のパス (http(s)://HOSTNAME/raw/
など) にアクセスしようとすると、404
エラーが返される場合があります。
メモ: GitHub Enterprise Server 3.7 では、http(s)://render.HOSTNAME
に置き換わって、http(s)://notebooks.HOSTNAME
または http(s)://viewscreen.HOSTNAME
サブドメインが新しく追加されています。 3.7 以降にアップグレードした後は、置換サービス (http(s)://notebooks.HOSTNAME
と http(s)://viewscreen.HOSTNAME
) のサブドメインが TLS 証明書の対象となっている必要があります。
Subdomain Isolationなしのパス | 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/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/ |
前提条件
警告: Subdomain Isolation を無効化している場合は、エンタープライズの GitHub Pages も無効化することをおすすめします。 ユーザが提供するGitHub Pagesのコンテンツをその他のEnterpriseのデータから分離しておく方法はありません。 詳しくは、「Enterprise 向けの GitHub Pages を設定する」を参照してください。
Subdomain Isolationを有効化する前に、新しいドメインに合わせてネットワークを設定しなければなりません。
- 有効なドメイン名を、IP アドレスではなくホスト名として指定します。 詳しくは、「インスタンスのホスト キーの構成」を参照してください。
警告: 初期セットアップ後に GitHub Enterprise Server のホスト名を変更しないでください。 ホスト名を変更すると、インスタンスの停止やユーザーのセキュリティ キーの無効化など、予期しない動作が生じます。 インスタンスのホスト名を変更して問題が発生した場合は、GitHub Enterprise サポート または GitHub Premium Support に問い合わせてください。
- 上記のサブドメインに対して、ワイルドカードのドメインネームシステム (DNS) レコードまたは個々の DNS レコードをセットアップします。 サブドメインごとに複数のレコードを作成する必要がないように、サーバーの IP アドレスを指す
*.HOSTNAME
の A レコードを作成することをお勧めします。 HOSTNAME
とワイルドカード ドメイン*.HOSTNAME
の両方にサブジェクトの別名 (SAN) を使って、*.HOSTNAME
に対するワイルドカード トランスポート層セキュリティ (TLS) 証明書を取得します。 たとえば、ホスト名がgithub.octoinc.com
の場合は、共通名の値を*.github.octoinc.com
に設定し、SAN の値をgithub.octoinc.com
と*.github.octoinc.com
の両方に設定して、証明書を取得します。- アプライアンスで TLS を有効にします。 詳しくは、「TLSの設定」を参照してください。
Subdomain Isolationの有効化
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[設定] サイドバーで [ホスト名] をクリックします。
-
[Subdomain isolation (recommended)](Subdomain Isolation (推奨)) を選びます。
-
[設定] サイドバーで [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。