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 votre instance GitHub Enterprise Server.

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.

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/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/
Not supportedhttps://containers.HOSTNAME/

Prerequisites

Avertissement : si l’isolation de sous-domaine est désactivée, nous vous recommandons également de désactiver GitHub Pages sur votre entreprise. Il n’existe aucun moyen d’isoler du contenu GitHub Pages fourni par l’utilisateur du reste des données de votre entreprise. Pour plus d’informations, consultez « Configuring GitHub Pages for your enterprise ».

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

Avertissement : ne modifiez pas le nom d’hôte de GitHub Enterprise Server après la configuration initiale. La modification du nom d’hôte entraînera un comportement inattendu, pouvant aller jusqu’à des interruptions de l’instance et l’invalidation des clés de sécurité des utilisateurs. Si vous avez modifié le nom d’hôte de votre instance et rencontrez des problèmes, contactez Support GitHub Enterprise ou Support Premium GitHub.

  • 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. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.

  2. Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.

  3. Dans la barre latérale «  Administrateur de site », cliquez sur Management Console .

  4. Dans la barre latérale « Paramètres », cliquez sur Nom d’hôte.

  5. Select Subdomain isolation (recommended).

  6. Sous la barre latérale « Paramètres », cliquez sur Enregistrer les paramètres.

    Remarque : l’enregistrement des paramètres dans la Management Console redémarre les services système, ce qui peut entraîner un temps d’arrêt visible pour l’utilisateur.

  7. Attendez la fin de l’exécution de la configuration.