Personen mit Administratorberechtigungen für ein Repository können HTTPS für eine GitHub Pages-Website erzwingen.
Informationen zu HTTPS und GitHub Pages
Alle GitHub Pages-Websites, auch Websites, die korrekt mit einer benutzerdefinierten Domäne konfiguriert sind, unterstützen HTTPS und die Erzwingung von HTTPS. Weitere Informationen zu benutzerdefinierten Domänen findest du unter AUTOTITLE und AUTOTITLE.
GitHub Pages-Websites, die nach dem 15. Juni 2016 erstellt wurden und -Domänen verwenden, werden automatisch über HTTPS bereitgestellt.
GitHub Pages-Websites sollten nicht für Transaktionen sensibler Daten verwendet werden, also beispielsweise nicht für das Senden von Passwörtern oder Kreditkartennummern.
Warnung
GitHub Pages-Website sind öffentlich im Internet verfügbar, auch wenn das Repository für die Website privat ist, falls dein Plan oder deine Organisation dies zulässt. Wenn das Repository deiner Website vertrauliche Daten enthält, solltest Du diese vor der Veröffentlichung entfernen. Weitere Informationen finden Sie unter Informationen zu Repositorys.
Hinweis
RFC3280 legt fest, dass die maximale Länge des allgemeinen Namens 64 Zeichen betragen sollte. Deshalb muss der gesamte Domänenname deiner GitHub Pages-Website weniger als 64 Zeichen lang sein, damit ein Zertifikat erfolgreich erstellt werden kann.
HTTPS für Deine GitHub Pages-Website erzwingen
-
Navigiere auf GitHub zum Repository deiner Website.
-
Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

-
Klicke im Abschnitt „Code and automation“ der Randleiste auf Pages.
-
Wähle unter "GitHub Pages" die Option HTTPS erzwingen.
Problembehandlung bei der Zertifikatbereitstellung (Fehler „Zertifikat noch nicht erstellt“)
Wenn Du Deine benutzerdefinierte Domäne in den Seiteneinstellungen einstellst oder änderst, beginnt eine automatische DNS-Überprüfung. Mit dieser Überprüfung wird festgestellt, ob Deine DNS-Einstellungen so konfiguriert sind, dass GitHub automatisch ein Zertifikat abrufen kann. Wenn die Überprüfung erfolgreich ist, GitHub wird ein Auftrag zur Anforderung eines TLS-Zertifikats bei Let's Encrypt in die Warteschlange gestellt. Wenn Sie ein gültiges Zertifikat erhalten, wird es von GitHub automatisch auf die Server hochgeladen, die das TLS-Termination für Seiten handhaben. Wenn dieser Vorgang erfolgreich abgeschlossen ist, wird neben Deinem benutzerdefinierten Domänennamen ein Häkchen angezeigt.
Dieser Vorgang kann eine Weile dauern. Wenn der Vorgang einige Minuten nach dem Klicken auf Speichern noch nicht abgeschlossen ist, klicke auf Entfernen neben Deinem benutzerdefinierten Domänennamen. Gib den Domänennamen erneut ein, und klicke erneut auf Speichern. Dadurch wird der Bereitstellungsprozess abgebrochen und neu gestartet.
Probleme bei gemischten Inhalten beheben
Wenn Du HTTPS für Deine GitHub Pages-Website aktivierst, der HTML-Code Deiner Website aber immer noch Bilder, CSS oder JavaScript über HTTP referenziert, dann stellt Deine Website gemischte Inhalte bereit. Durch das Bereitstellen gemischter Inhalte kann Deine Website weniger sicher werden und Probleme beim Laden der Ressourcen verursachen.
Um die gemischten Inhalte Ihrer Website zu entfernen, stellen Sie sicher, dass alle Ihre Ressourcen über HTTPS bereitgestellt werden, indem Sie in der HTML Ihrer Website „http://“ durch „https://“ ersetzen.
Assets befinden sich meist an den folgenden Standorten.
- Wenn auf deiner Website Jekyll verwendet wird, findest du deine HTML-Dateien wahrscheinlich im Ordner .
- CSS wird in der Regel im Abschnitt Deiner HTML-Datei gefunden.
- JavaScript wird üblicherweise im
<head>Abschnitt oder direkt vor dem schließenden<body>Tag gefunden. - Bilder werden häufig im Abschnitt gefunden.
Tipp
Wenn du die Ressourcen nicht in den Quelldateien deiner Website findest, versuche, die Quelldateien deiner Website in einem Texteditor oder auf GitHub nach den relevanten Informationen zu durchsuchen.
Beispiele für referenzierte Objekte in einer HTML-Datei
| Ressourcentyp | HTTP | HTTPS |
|---|---|---|
| CSS | <link rel="stylesheet" href="http://example.com/css/main.css"> | <link rel="stylesheet" href="https://example.com/css/main.css"> |
| JavaScript | <script type="text/javascript" src="http://example.com/js/main.js"></script> | <script type="text/javascript" src="https://example.com/js/main.js"></script> |
| Abbildung | <a href="http://www.somesite.com"><img src="http://www.example.com/logo.jpg" alt="Logo"></a> | <a href="https://www.somesite.com"><img src="https://www.example.com/logo.jpg" alt="Logo"></a> |
Überprüfen der DNS-Konfiguration
In einigen Fällen kann ein HTTPS-Zertifikat aufgrund der DNS-Konfiguration Ihrer benutzerdefinierten Domäne nicht erstellt werden. Dies kann durch zusätzliche DNS-Einträge oder durch Einträge, die nicht auf die IP-Adressen für GitHub Pages verweisen, verursacht werden.
Um sicherzustellen, dass ein HTTPS-Zertifikat korrekt generiert wird, empfehlen wir die folgenden Konfigurationen. Zusätzliche Einträge mit dem Host oder Einträge, die auf Ihre Unterdomäne oder eine andere benutzerdefinierte Unterdomäne verweisen, die Sie mit GitHub Pages verwenden möchten, können die Erstellung des HTTPS-Zertifikats verhindern.
| Szenario | DNS-Eintragstyp | Name des DNS-Eintrags | Wert(e) des DNS-Eintrags |
|---|---|---|---|
| Apex-Domäne () | A | @ | 185.199.108.153185.199.109.153185.199.110.153185.199.111.153 |
| Apex-Domäne () | AAAA | @ | 2606:50c0:8000::1532606:50c0:8001::1532606:50c0:8002::1532606:50c0:8003::153 |
| Apex-Domäne () | oder | @ | oderORGANIZATION.github.io |
| Unterdomäne (, ) | CNAME | SUBDOMAIN.example.com. | oderORGANIZATION.github.io |