Modul 3 · 3.1
Deutsch
https und das Zertifikat
Modul 3: Adresse, https und Benutzer · Lesezeit: 8 Minuten
Lernziel: Nach dieser Lektion können Sie eine WordPress-Website vollständig auf https umstellen und wissen, was die WordPress-Adresse und die Website-Adresse bewirken.
Kernbegriffe: TLS, Zertifikat, Let's Encrypt, automatische Verlängerung, WordPress-Adresse (siteurl), Website-Adresse (home), WP_HOME und WP_SITEURL, HSTS, Aussperrung
Was https bewirkt
Mit https läuft alles zwischen Browser und Server verschlüsselt: Passwörter, Formulare, Cookies, auch gewöhnliche Seiten. Ohne https kann jeder im selben Netzwerk (ein öffentliches WLAN, ein gekaperter Router) mitlesen und sogar die Seite verändern. Browser zeigen eine Website ohne https als "nicht sicher" an, und manche Funktionen (wie Standort oder Kamera) funktionieren nur mit https.
Die Verschlüsselung heißt TLS. Um zu beweisen, dass der Browser wirklich mit example.com spricht und nicht mit einem Mittelsmann, besitzt der Server ein Zertifikat: einen digitalen Nachweis, unterschrieben von einem Aussteller, dem Browser vertrauen. Das Zertifikat nennt die Namen, für die es gilt, und bis wann.
Kostenlose Zertifikate und Verlängerung
Let's Encrypt stellt kostenlose Zertifikate aus. Fast jeder Hoster beantragt sie automatisch und verlängert sie auch automatisch. Ein Zertifikat von Let's Encrypt ist derzeit 90 Tage gültig, und Let's Encrypt hat angekündigt, diese Gültigkeit schrittweise auf 45 Tage zu verkürzen. Manuelles Verlängern ist daher keine Option: Es muss automatisch geschehen.
Ein kostenpflichtiges Zertifikat verschlüsselt nicht besser. Der Unterschied liegt in einer zusätzlichen Prüfung der Organisation (und manchmal einer Garantie). Für die meisten Websites ist ein kostenloses Zertifikat völlig ausreichend.
Worauf Sie achten:
- Das Zertifikat muss jeden Namen abdecken, den ein Besucher eingeben kann:
example.comundwww.example.com. Auch den Namen, der nur weiterleitet, denn der Browser prüft das Zertifikat vor der Weiterleitung. - Automatisches Verlängern funktioniert nur, wenn der DNS auf Ihren Server zeigt. Haben Sie den DNS umgezogen oder einen Proxy (wie Cloudflare) davorgeschaltet, prüfen Sie, ob die Verlängerung noch funktioniert.
- Ein CAA-Eintrag im DNS kann festlegen, welche Aussteller Zertifikate erstellen dürfen. Steht Let's Encrypt dort nicht, schlägt der Antrag fehl (DNS-Kurs Lektion 5.2).
Zwei Adressen in WordPress
Unter Einstellungen > Allgemein stehen zwei Adressen. Sie wirken überflüssig doppelt, bedeuten aber etwas anderes:
| Feld | In der Datenbank | Bedeutung |
|---|---|---|
| WordPress-Adresse (URL) | siteurl | Wo die Dateien von WordPress liegen (wp-admin, wp-includes) |
| Website-Adresse (URL) | home | Die Adresse, die Besucher verwenden |
Meist sind sie gleich, zum Beispiel beide https://example.com. Sie unterscheiden sich nur, wenn WordPress in einem Unterordner liegt, die Website aber im Hauptordner erscheinen soll.
WordPress erstellt mit diesen Adressen alle Links: zu Seiten, Stylesheets, Bildern, zum Adminbereich. Steht hier http://, baut WordPress Seiten mit http://-Links, auch wenn der Besucher über https kommt. Das führt zu gemischten Inhalten (Lektion 3.2) und Weiterleitungen hin und her.
Eine Website auf https umstellen
Haben Sie eine bestehende Website auf http, sind dies die Schritte:
- Zertifikat für beide Namen beantragen und prüfen, dass
https://example.comfunktioniert (Sie sehen dann eine WordPress-Seite, vielleicht noch ohne Formatierung). - Backup erstellen (Lektion 8.1).
- Beide Adressen unter Einstellungen > Allgemein auf
https://setzen und speichern. Sie werden ausgeloggt; melden Sie sich erneut über https an. - Alte Links im Inhalt von
http://example.comzuhttps://example.comumwandeln. Verwenden Sie dafür ein Hilfsmittel, das serialisierte Daten versteht, wiewp search-replaceoder ein Suchen-und-Ersetzen-Plugin (Lektion 3.2), niemals einen einfachen SQL-Befehl. - Weiterleitung: Lassen Sie den Webserver alle Anfragen auf http mit einem 301 zu https weiterleiten (Lektion 3.2). Viele Hoster haben dafür eine Option zum Anhaken; sonst einige Zeilen in
.htaccess. - Prüfen Sie mit der Aufgabe dieser Lektion und der von Lektion 3.2.
Ausgesperrt: wenn die Adresse falsch steht
Tippen Sie bei den Adressen einen Fehler (htps://, eine falsche Domain), schickt WordPress Sie nach dem Speichern zu dieser falschen Adresse. Sie erreichen den Adminbereich nicht mehr. Keine Panik, es gibt zwei Auswege:
Über wp-config.php. Setzen Sie oberhalb der Zeile "Stop editing" Folgendes ein:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Diese Zeilen haben Vorrang vor den Werten in der Datenbank. Die Felder unter Einstellungen > Allgemein werden dann grau. Melden Sie sich an, setzen Sie die richtigen Werte in der Datenbank und entfernen Sie die Zeilen wieder (oder lassen Sie sie bewusst stehen, dann kann niemand die Adressen versehentlich über den Adminbereich ändern).
Über phpMyAdmin. Öffnen Sie die Tabelle wp_options und passen Sie die Werte von siteurl und home an.
HSTS: den Browser erinnern lassen
Mit dem Header HSTS (Strict-Transport-Security) sagt der Server dem Browser: "komme in der nächsten Zeit nur noch über https hierher." Der Browser wandelt danach selbst jedes http:// in https:// um, ohne zuerst eine unverschlüsselte Anfrage zu stellen.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS ist ein guter zusätzlicher Schritt, aber mit einer Warnung: Ein Browser, der HSTS gesehen hat, verweigert danach den Zugriff auf die Website ohne gültiges Zertifikat, auch nicht mit "trotzdem fortfahren". Mit includeSubDomains gilt das für jede Subdomain. Haben Sie eine Subdomain ohne Zertifikat (zum Beispiel ein altes internes System), ist diese nach HSTS unerreichbar. Beginnen Sie deshalb mit einer kurzen max-age (zum Beispiel ein Tag, 86400), prüfen Sie alles, und verlängern Sie danach.
In der Praxis: so sieht es in einem Panel aus
Als Beispiel verwenden wir DirectAdmin. In cPanel heißt der Bereich SSL/TLS Status (AutoSSL), in Plesk SSL/TLS Certificates.
- Öffnen Sie SSL-Zertifikate bei Ihrer Domain und wählen Sie Kostenloses und automatisches Zertifikat von Let's Encrypt.
- Haken Sie
example.comundwww.example.coman und beantragen Sie das Zertifikat. - Aktivieren Sie bei den Domaineinstellungen die Option, Besucher immer zu https zu leiten (bei DirectAdmin: Force SSL mit https-Umleitung). Verwenden Sie nur eine Art der Weiterleitung: zwei verschiedene gleichzeitig können eine Schleife verursachen ("zu viele Weiterleitungen").
- Gehen Sie in WordPress zu Einstellungen > Allgemein und setzen Sie beide Adressen auf
https://.
Zusammenfassung
- https verschlüsselt alles zwischen Browser und Server; das Zertifikat beweist, wer der Server ist.
- Kostenlose Zertifikate von Let's Encrypt sind kurz gültig und werden automatisch verlängert; sie müssen jeden Namen abdecken, den ein Besucher eingibt.
- WordPress-Adresse (siteurl) und Website-Adresse (home) müssen beide auf
https://stehen. - Sind Sie durch eine falsche Adresse ausgesperrt, stellen Sie den Zugriff mit WP_HOME und WP_SITEURL in wp-config.php oder in phpMyAdmin wieder her.
- HSTS ist ein guter zusätzlicher Schritt; beginnen Sie mit einer kurzen Gültigkeit.
Quiz
Aufgabe
Aufgabe A3.1: Stimmt Ihr Zertifikat? Geben Sie die Adresse Ihrer Website ein. Das Programm stellt eine TLS-Verbindung mit dem Namen ohne www und mit www (falls vorhanden) her und prüft: Ist das Zertifikat gültig und vertrauenswürdig, deckt es beide Namen ab, ist es länger als 14 Tage gültig, und sendet die Website einen HSTS-Header? Fehlt HSTS, erscheint das orange mit Erklärung, kein Fehler.
Weiterführende Informationen
Diese Artikel beschreiben die Schritte in den Panels von WebOké; in anderen Panels funktionieren sie ähnlich.
- DirectAdmin Anleitung 6.1: Was ist SSL und wie regelt WebOké das?
- DirectAdmin Anleitung 6.2: Ein kostenloses Let's Encrypt-Zertifikat anfordern
- DirectAdmin Anleitung 6.3: Zertifikat für www, Subdomains und Wildcard
- DirectAdmin Anleitung 6.4: Besucher immer zu https weiterleiten
- SSL-Zertifikat aktivieren, erneuern und Probleme beheben
- Der Unterschied zwischen einem kostenlosen und einem kostenpflichtigen Zertifikat
- Kostenloser DNS-Kurs 5.2: CAA: Wer darf Zertifikate ausstellen?
