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“.
Vorrausetzungen
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.
Du kannst mit dem Befehl ghe-ssl-generate-csr
eine Anfrage zur Signierung des Zertifikats (CSR) für Deine Instanz erzeugen. Weitere Informationen finden Sie unter „Befehlszeilenprogramme“.
Benutzerdefiniertes TLS-Zertifikat hochladen
-
From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page.
-
Klicke auf der linken Seitenleiste auf Managementkonsole.
-
Klicke auf der linken Seitenleiste auf Privacy (Datenschutz).
-
Aktiviere 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“.
-
Klicke auf der linken Seitenleiste auf Save settings (Einstellungen speichern).
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
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 Deine 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 your GitHub Enterprise Server instance 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 your GitHub Enterprise Server instance 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 Deine 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.
- From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page.
- Klicke auf der linken Seitenleiste auf Managementkonsole.
- Klicke auf der linken Seitenleiste auf Privacy (Datenschutz).
- Aktiviere 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.
- Klicke auf der linken Seitenleiste auf Save settings (Einstellungen speichern).
- Warten Sie auf den Abschluss der Konfigurationsausführung.
- Klicke auf der linken Seitenleiste auf Privacy (Datenschutz).
- Klicken Sie auf Request TLS certificate (TLS-Zertifikat anfordern).
- Wait for the "Status" to change from "STARTED" to "DONE".
- Klicken Sie auf Save configuration (Konfiguration speichern).