Wer seine WordPress Webseite auf HTTPS umstellen möchte, der muss auf ein paar Dinge achten. Das Projekt Let’s encrypt bietet Webseitenbetreibern eine kostenfreie Möglichkeit auf HTTPS umzustellen. HTTPS das bedeutet die Verbindung des Browsers zum Server wird mit einer SSL (Secure Sockets Layer) / TLS (Transport Layer Security) Verschlüsselung aufgebaut und abgewickelt.
Daten die der Benutzer einer Webseite also zum Server per HTTPS überträgt, können von Servern, die auf dem Pfad zwischen Benutzer und Server die Daten durchleiten, nicht eingesehen werden. Gerade für Webseiten, die per Formular sensible Daten, wie beispielsweise Adressdaten oder Kontoinformationen übertragen, ist die Nutzung eines HTTPS Protokolls eine Vertrauen schaffende Maßnahme.
- 1 Installation des HTTPS SSL-/TLS-Zertifikats mit Let’s Encrypt
- 1.1 Vorbereitungen: Der Apache nimmt SSL Verbindungen an?
- 1.2 Schritt 1: Git Client installieren
- 1.3 Schritt 2: System update
- 1.4 Schritt 3: Let’s Encrypt Client herunterladen
- 1.5 Schritt 4: SSL-/TLS-Zertifikat einrichten
- 1.6 Schritt 5: SSL Zertifikat testen
- 1.7 Schritt 6: Automatisierte Erneuerung des Zertifikat vor Ablauf
- 2 301-Redirect per .htaccess für WordPress
Warum (WordPress-) Webseiten auf HTTPS umstellen?
Google hat bereits im August 2014 bestätigt, dass Webseiten mit HTTPS einen kleinen Ranking Boost erhalten. Bei den Entwicklern des Google Chrome Browsers arbeitet man bereits daran, dass unverschlüsselte, also nur per HTTP, Datenübertragungen gekennzeichnet werden, so hat es Parisa Tabriz, die Leiterin des des Google-Security-Engineering-Teams, bereits angekündigt. Es scheint also absehbar, dass die Verwendung einer HTTPS Verschlüsselung in Deiner Webseite (mit oder ohne WordPress) nicht nur ein positives Signal ist, sondern man hierdurch auch eine negative Bewertung durch Google vermeidet.
Seit Dezember 2015 bietet nun die Internet Security Research Group (ISRG) mit Let’s Encrypt eine Certificate-Authority (CA) an, die kostenfrei sind. Ziel des Projekts Let’s Encrypt ist es, die Umstellung von HTTP auf HTTPS für Webseitenbetreiber stark zu vereinfachen und somit die Absicherung durch HTTPS voranzubringen. Die Zertifikate sind kostenfrei und können von jedem Administrator problemlos eingebunden werden. Die Zertifikate von Let’s Encrypt werden für jeweils 90 Tage ausgestellt und können von Dir automatisiert erneuert werden.
Jeder der einen eigenen Server betreibt, egal ob Virtuell Root, Root Server oder Cloud Server, kann die Zertifikate mithilfe des Clients selbst installieren. Es gibt also keine Ausreden mehr, warum die eigene Seite keine HTTPS Verschlüsselung nutzt.
Hier nun eine kurze Anleitung, wie ein SSL-/TLS-Zertifikat mit Let’s Encrypt eingerichtet werden kann. Das konkrete Beispiel richtet sich an Debian und Ubuntu Linux Nutzer.
Installation des HTTPS SSL-/TLS-Zertifikats mit Let’s Encrypt
Vorbereitungen: Der Apache nimmt SSL Verbindungen an?
SSL für den Apache aktivieren:
# a2enmod ssl Considering dependency setenvif for ssl: Module setenvif already enabled Considering dependency mime for ssl: Module mime already enabled Considering dependency socache_shmcb for ssl: Enabling module socache_shmcb. Enabling module ssl. To activate the new configuration, you need to run: service apache2 restart
Dran denken das https/Port 443 durch die Firewall kommt! Checken ob Apache auf Port :443 lauscht:
# netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::80 :::* LISTEN 4491/apache2 tcp6 0 0 :::443 :::* LISTEN 4491/apache2
Schritt 1: Git Client installieren
wer den Git Client noch nicht auf seinem Server hat, kann diesen installieren um ganz einfach Projekte, sogenannte Repositorys, von GitHub auf seinem Server zu installieren.
# sudo apt-get install git
Schritt 2: System update
Im ersten Schritt empfiehlt es sich alle relevanten Updates durchzuführen:
# sudo apt-get update # sudo apt-get upgrade # sudo apt-get dist-upgrade
Ein Hinweis: Ggfs. muss als Zwischenschritt ein “apt-get autoremove” ausgeführt werden.
Alternativ und kürzer:
# sudo apt-get update && apt-get dist-upgrade
Schritt 3: Let’s Encrypt Client herunterladen
nun kann der Let’s Encrypt Client aus des offiziellen Let’s Encrypt GitHub Repository heruntergeladen werden.
# sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
der Client wird in das/opt Verzeichnis unter /opt/letsencrypt installiert. Bei Linux Systemen ist dies ein übliches Verzeichnis für Third-Party-Software.
Schritt 4: SSL-/TLS-Zertifikat einrichten
mit folgendem Befehl wird nun in das passende Verzeichnis gewechselt
# cd /opt/letsencrypt
Nun gibt es mehrere Varianten:
Variante 1: Automatische einfache Installation
für die automatische Installation wird der „letsencrypt-auto command“ aufgerufen. Der Befehl hierfür lautet:
# ./letsencrypt-auto --apache -d WWW.DEINEDOMAIN.DE
Variante 2: Automatische Installation für Hauptdomain plus Subdomain
wer für Hauptdomain plus Subdomains das Zertifikat einrichten möchte, verwendet den folgenden Befehl:
# ./letsencrypt-auto --apache -d DEINEDOMAIN.DE -d WWW.DEINEDOMAIN.DE
Der Let’s Encrypt Client installiert nun automatisiert die SSL-/TLS-Zertifikate. Während des Installationsvorgangs werden optionale Einstellungen abgefragt. So kann man an dieser Stelle beispielsweise eine E-Mail-Adresse eintragen die man zur Wiederherstellung eines versehentlich gelöschten Zertifikat benötigt. Es kann zudem ausgewählt werden ob die Webseite sowohl unter http://, als auch unter https:// für Benutzer erreichbar sein soll oder ob ausschließlich nur noch per https:// zugegriffen werden kann. Das Zertifikat liegt nun im Ordner /etc/letsencrypt/live. Für jedes Zertifikat wird ein eigener Ordner angelegt.
Schritt 5: SSL Zertifikat testen
Hier könnt Ihr testen, ob ihr erfolgreich wart, Domain eingeben und los: https://www.ssllabs.com/ssltest/index.html
Schritt 6: Automatisierte Erneuerung des Zertifikat vor Ablauf
die Let’s Encrypt SSL-/TLS-Zertifikate haben eine Laufzeit von 90 Tagen. Die Erneuerung des Zertifikat kann automatisch erfolgen, man muss lediglich den Befehl zur automatischen Erneuerung des SSL Zertifikat in seine crontab eintragen.
# crontab -e
dort trägt man nun beispielsweise ein, dass das Zertifikat nach 87 Tagen, also drei Tage vor Ablauf, erneuert werden soll:
0 0 */87 * * /opt/letsencrypt/letsencrypt-auto --text --apache --renew-by-default -d DEINEDOMAIN.DE -d WWW.DEINEDOMAIN.DE
nun wird die crontab gespeichert und dem Cron-Daemon die Aktualisierung mitgeteilt:
# sudo service cron reload
ich persönlich verwende als Editor unter Linux den kleinen schnellen Joe. Viele benutzen den Editor Vi der häufig auch standardmäßig installiert ist. Wer Joe probieren möchte installiert ihn mit folgendem Befehl:
apt-get install joe
wer die crontab das erste Mal öffnet, der wird gefragt mit welchem Editor er sie in der Zukunft bearbeiten soll. Einfach Joe auswählen. Wer die crontab mit oben stehenden Befehl geöffnet und modifiziert hat, kann sie nun mit der Tastenkombination CTRL+K anschließend X abspeichern.
301-Redirect per .htaccess für WordPress
Wer seine WordPress Installation umstellt, möchte natürlich aus SEO technischen Gründen die alten HTTP URLs die in den Suchmaschinen indexiert sind, auf die neue HTTPS URL umleiten. Google wertet die Umstellung des Protokolls als eigene Domain. D.h. verschiedene Schritte sind notwendig, um eingesetzte Analytik Tools umzustellen und die Wertigkeit der alten URLs auf die neuen zu übertragen. Ich habe bereits einen Artikel dazu veröffentlicht: An folgender Stelle findest du mehr mehr Hintergrundinformationen über die 301-er Umleitung in der .htaccess und warum sie wichtig ist …
Schritt 1: Vorbereitung von WordPress
Im ersten Schritt sollte man sich sein WordPress Administrator Passwort notieren, bevor man das SSL Zertifikat für HTTPS für seine Domain einrichtet. Wer es verbockt und wer mit der Passwort vergessen Funktion nicht weiterkommt, hier gibt es den Befehl das WordPress Admin Passwort direkt in der Datenbank zu ändern …
Das Zertifikat kann nun eingerichtet werden wie oben beschrieben. Anschließend logt man sich in das Backend seines WordPress ein, uns ergänzt im Menüpunkt Einstellungen>Allgemein das https://.
Wer nun bei Aufruf seiner Domain nicht die sichere Verbindung im Browser angezeigt bekommt, hat auf seiner Seite vermutlich noch Elemente die per http:// und nicht per https:// aufgerufen werden. Wer nicht alle Seiten durchgehen und beispielsweise URLs von Bilddateien oder ähnliches manuell ändern möchte, der kann über die MySQL Datenbank folgende Befehle verwenden um dies umzuschreiben:
mysql> UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://','https://');
mysql> UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://', 'https://');
Im nächsten Schritt wird nun die .htaccess modifiziert, um den 301-Redirect von http:// auf https:// einzurichten.
Schritt 2: 301-er Umleitung in der .htaccess einrichten
mit folgendem Befehl wird die Datei geöffnet:
# joe .htaccess
Anmerkung: ich verwende weiterhin den Editor Joe.
Wie eine optimale .htaccess für WordPress aus meiner Sicht aussehen kann habe ich übrigens in dem Beitrag “tune your wordpress” geschrieben.
Die folgenden Ergänzungen kommen in die .htaccess
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://DEINEDOMAIN.DE/$1 [R=301,L]
Die .htaccess sollte nun ungefähr wie folgt aussehen:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://DEINEDOMAIN.DE/$1 [R=301,L] # ALTERNATIV: RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R=301,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
als abschließende Schritte empfiehlt sich im Fall der Verwendung von Google Analytics und/oder der Google Search Console noch, die Umstellung auf HTTPS dort anzumelden.
Schritt 3: Google die Änderung auf HTTPS mitteilen
Wie eingangs erwähnt unterscheidet die Google Search Console das veränderte Protokoll wie eine eigene Domain. Folglich meldet man in der Search Console eine neue Property mit https://DeineDomain.de an.Und nicht vergessen: Die Google Sitemap in der neuen Property sauber anzumelden.
Wer seine Search Console mit den Google Analytics verknüpft hat, geht auch dort in sein Konto und teilt im Menüpunkt Verwaltung die veränderte Verknüpfung zu der HTTPS Version mit.
Das war’s. Du hast es geschafft. Ob der Aufwand sich lohnt? Ich denke schon! Wer es einmal gemacht hat dem läuft es leicht von der Hand …
1 thought on “WordPress: Webseite auf HTTPS umstellen mit Let’s encrypt und 301 Redirect”