TLS konfigurieren
Sie können Transport Layer Security (TLS) auf Ihre GitHub Enterprise Server-Instanz konfigurieren, damit Sie ein von einer vertrauenswürdigen Zertifizierungsstelle signiertes Zertifikat verwenden können.
Inhalt dieses Artikels
- Informationen zu Transport Layer Security
- Voraussetzungen
- Benutzerdefiniertes TLS-Zertifikat hochladen
- Informationen zur Let's Encrypt-Unterstützung
- TLS mit Let's Encrypt konfigurieren
Informationen zu Transport Layer Security
TLS, das SSL ersetzt hat, wird beim erstmaligen Start von GitHub Enterprise Server mit einem selbstsignierten Zertifikat aktiviert und konfiguriert. Da Webbrowser und Git-Clients selbstsignierten Zertifikaten nicht vertrauen, melden diese Clients Zertifikatswarnungen, bis Sie TLS deaktivieren oder ein von einer vertrauenswürdigen Zertifizierungsstelle wie Let's Encrypt signiertes Zertifikat hochladen.
Die GitHub Enterprise Server-Appliance sendet HTTP Strict Transport Security-Header, wenn SSL aktiviert ist. Wenn TLS deaktiviert wird, verlieren die Benutzer den Zugriff auf die Appliance, da ihre Browser eine Protokollherabstufung auf HTTP nicht zulassen. Weitere Informationen finden Sie unter „HTTP Strict Transport Security (HSTS)“ auf Wikipedia.
Warnung: Wenn HTTPS-Verbindungen auf einem Load-Balancer beendet werden, müssen die vom Load-Balancer an GitHub Enterprise Server gesendeten Anforderungen ebenfalls HTTPS verwenden. Das Downgraden der Verbindung auf HTTP wird nicht unterstützt.
Sie müssen TLS für Ihre Instanz aktivieren, um Benutzern zu erlauben, FIDO U2F für die Zwei-Faktor-Authentifizierung zu verwenden. Weitere Informationen finden Sie unter „Zwei-Faktor-Authentifizierung konfigurieren“.
Voraussetzungen
Um TLS in der Produktion zu verwenden, müssen Sie über ein Zertifikat verfügen, das ein unverschlüsseltes PEM-Format aufweist und von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde.
Darüber hinaus schreibt Ihr Zertifikat Subject Alternative Names vor, die für die in „Subdomain-Isolation aktivieren“ aufgelisteten Subdomains konfiguriert sind, und es muss die gesamte Zertifikatskette enthalten, wenn es von einer zwischengeschalteten Zertifizierungsstelle signiert wurde. Weitere Informationen finden Sie unter „Subject Alternative Name“ auf Wikipedia.
You can generate a certificate signing request (CSR) for your instance using the ghe-ssl-generate-csr
command. For more information, see "Command-line utilities."
Benutzerdefiniertes TLS-Zertifikat hochladen
-
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf Managementkonsole.
-
Klicken Sie auf der linken Seitenleiste auf Privacy (Datenschutz).
-
Aktivieren Sie TLS only (recommended) (Nur TLS (empfohlen)).
-
Wählen Sie unter „TLS Protocol support“ (TLS-Protokollunterstützung) die Protokolle aus, die zugelassen werden sollen.
-
Klicken Sie unter „Certificate“ (Zertifikat) auf Choose File (Datei auswählen), um ein TLS-Zertifikat oder eine Zertifikatskette (im PEM-Format) zur Installation auszuwählen. Diese Datei hat in der Regel eine .pem-, .crt- oder .cer-Erweiterung.
-
Klicken Sie unter „Unencrypted key“ (Unverschlüsselter Schlüssel) auf Choose File (Datei auswählen), um einen TLS-Schlüssel (im PEM-Format) zur Installation auszuwählen. Diese Datei hat in der Regel eine .key-Erweiterung.
Warnung: Ihr TLS-Schlüssel darf keine Passphrase aufweisen. Weitere Informationen finden Sie unter „Passphrase aus Ihrer Schlüsseldatei entfernen“.
-
Klicken Sie auf der linken Seitenleiste auf Save settings (Einstellungen speichern).
Informationen zur Let's Encrypt-Unterstützung
Let's Encrypt ist eine öffentliche Zertifizierungsstelle, die kostenlose, automatisierte TLS-Zertifikate ausstellt, denen Browsern vertrauen, die das ACME-Protokoll verwenden. Sie können Let's Encrypt-Zertifikate auf Ihrer Appliance automatisch abrufen und verlängern, ohne dass eine manuelle Wartung erforderlich ist.
Zum Verwenden der Let's Encrypt-Automatisierung muss Ihre Appliance mit einem Hostnamen konfiguriert sein, auf den über HTTP öffentlich zugegriffen werden kann. Darüber hinaus muss festgelegt werden, dass die Appliance ausgehende HTTPS-Verbindungen herstellen kann.
Wenn Sie die Automatisierung der TLS-Zertifikatsverwaltung mit Let's Encrypt aktivieren, kontaktiert Ihre GitHub Enterprise Server-Instanz die Let's Encrypt-Server, um ein Zertifikat abzurufen. Zum Verlängern eines Zertifikats müssen die Let's Encrypt-Server die Steuerung des konfigurierten Domain-Namens mit eingehenden HTTP-Anforderungen validieren.
Darüber hinaus können Sie das Befehlszeilenprogramm ghe-ssl-acme
auf Ihre GitHub Enterprise Server-Instanz verwenden, um ein Let's Encrypt-Zertifikat automatisch zu generieren. Weitere Informationen finden Sie unter „Befehlszeilenprogramme“.
TLS mit Let's Encrypt konfigurieren
Zum Verwenden der Let's Encrypt-Automatisierung muss Ihre Appliance mit einem Hostnamen konfiguriert sein, auf den über HTTP öffentlich zugegriffen werden kann. Darüber hinaus muss festgelegt werden, dass die Appliance ausgehende HTTPS-Verbindungen herstellen kann.
-
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf Managementkonsole.
-
Klicken Sie auf der linken Seitenleiste auf Privacy (Datenschutz).
-
Aktivieren Sie TLS only (recommended) (Nur TLS (empfohlen)).
-
Wählen Sie Enable automation of TLS certificate management using Let's Encrypt (Automatisierung der TLS-Zertifikatsverwaltung mit Let's Encrypt aktivieren) aus.
-
Klicken Sie auf der linken Seitenleiste auf Save settings (Einstellungen speichern).
-
Klicken Sie auf der linken Seitenleiste auf Privacy (Datenschutz).
-
Klicken Sie auf Request TLS certificate (TLS-Zertifikat anfordern).
-
Klicken Sie auf Save configuration (Konfiguration speichern).