In dieser Anleitung zeige ich dir Schritt für Schritt und mit vielen Screenshots, wie du dein WordPress auf https umstellst.
Die Umstellung von http auf https ist gar nicht so schwer, wenn man ein paar Dinge beachtet.
Ich zeige Anhand einer WordPress-Installation die beim Anbieter all-inkl.com gehostet wird, wie man WordPress (inklusive Podcast-Funktion über das Plugin Podlove Publisher) auf https umstellt. Wenn du deine Seite nicht bei all-inkl.com gehostet hast, ist das kein Problem. Die Schritte sind im Prinzip die gleichen, allerdings kann das ein oder andere Details etwas anders aussehen. Und wenn du mit deinem Podcast keinen Podcast betreibst: auch kein Problem, dann lass einfach die Schritte die den Podcast betreffen weg.
Aber wie geschrieben: die grundlegenden Schritte sind die gleichen, egal bei welchem Hoster man sein WordPress liegen hat.
Fange wir mit der Umstellung auf https an:
Erstmal ein Backup machen
Ich habe bereits fünf, sechs WordPress-Seiten auf https umgestellt und nie ist etwas schief gegangen. Trotzdem sollte man unbedingt ein Backup machen, bevor man mit der Umstellung anfängt. Sollte doch aus irgendeinem Grund irgendetwas schief gehen, ist man damit auf der sicheren Seite.
SSL-Schutz im KAS aktivieren
Du logst dich in das KAS ein und wählst die Domain aus, die von http auf https umgestellt werden soll.
Dann hinter dem Domain-Namen auf “Bearbeiten” klicken.
Im nachfolgenden Screen gibt es dann ungefähr in der Mitte den Punk “SSL-Schutz“. Hier einfach auf das Icon hinter “bearbeiten” klicken.
Hier kann man nun die SSL-Zertifikate bearbeiten. Da wir noch keins angelegt haben, sollte hier alles leer sein.
Praktisch: all-inkl.com bietet seit einiger Zeit die Einbindung von kostenlosen Let’s Encrypt-Zertifikaten an.
Dazu klicken wir einfach auf den dritten Reiter “Let’s Encrypt”.
all-inkl.com bietet zwar die Einbindung von Let’s Encrypt-Zertifikaten an, übernimmt aber keine Haftung dafür. Bevor wir das Zertifikat beziehen und einbinden können, müssen wir den Haftungsausschluss akzeptieren:
Haben wir den Haken dort gesetzt, können wir auf “jetzt ein Let’s Encrypt Zertifikat beziehen und einbinden” klicken.
Kurze Zeit später haben wir unser persönlichen Zertifikat, dass wir für die https-Umstellung benötigen:
Da Zertifikat wird übrigens automatisch von all-inkl.com erneuert, darüber musst du dir also keine Gedanken machen.
So, nun haben wir also ein SSL-Zertifikat, dass wir für unsere Seite nutzen können.
Damit WordPress etwas von dem Zertifikat mitbekommt, musst du hier nun ein paar Einstellungen ändern.
https in den WordPress-Einstellungen eintragen
Dazu logst du dich ganz normal in dein WordPress-Backend ein und gehst dort auf “Einstellungen -> Allgemein”.
Dort gibt es die beiden Felder “WordPress-Adresse (URL)” und “Website-Adresse (URL)”. Hier sollte aktuell noch deine Adresse mit http drin stehen.
Die Adresse ändern wir nun in beiden Feldern auf https. Dabei nicht vergessen, ganz unten am Ende der Seite auch auf “Änderungen übernehmen” zu drücken. ;)
So, nun sollte die Seite verschlüsselt erreichbar sein, wenn man sie mit https statt http aufruft.
Oben in der Browser-Adresszeile sollte es dann so aussehen:
An sich schon mal nicht schlecht. Wir sehen das Schloß vor der URL. Allerdings noch mit einem Warndreieck.
Dieses Dreieck ist erstmal nicht schlimm, es weißt nur darauf hin, dass es auf der Seite noch sogenannten “mixed content” gibt. Mixed content bedeutet, dass es auf der eigentlich mit https aufgerufenen Seite noch Elemente gibt, die nicht verschlüsselt, also noch über http aufgerufen werden.
Das können Links, Grafiken usw. sein.
Auch wenn wir gerade in den WordPress-Einstellungen die URL auf https geändert haben, in der Datenbank verstecken sich noch einige Links ohne https. Deshalb schnappen wir uns nun die Datenbank und ändern die restlichen Verlinkungen auch noch.
Änderungen in der Datenbank
MySQL-Cracks können die Änderungen mit irgendwelchen Befehlen direkt phpMyAdmin usw. ausführen. Ich bin da nicht so bewandert und nutze lieber ein praktischtes Tool der Firma interconnect/it namens “Search Replace DB”.
Dieses Tool beziehungsweise Script installiert man auf seinem Webspace und führt es aus.
Wichtig hier: gib dem Script-Ordner einen möglichst kryptischen Namen wie zum Beispiel “quartahans” oder so. Irgendeinen Namen, den Fremde nicht erraten können, denn: jeder, der das Script aufruft, kann an deiner Datenbank herumfuschen. Deshalb auch ganz wichtig: wenn du das Tool genutzt hast, lösche es direkt wieder von deinem Server.
Nun gut, das Tool ist installiert und kann nun genutzt werden:
Im ersten Feld gibt man die alte URL (replace) ein, in meinem Fall war es http://www.feuerglutundherzblut.de
Im zweiten Feld (with) gibt man die URL mit https ein, also https://www.feuerglutundherzblut.de
Unter “database” sollten die Daten der WordPress-Datenbank enthalten sein. Wie du siehst, liest das Script Datenbankname, Passwort usw. aus. Deshalb auch die Sache mit dem möglichst nicht zu erratenem Ordernnamen – und dem sofortigen Löschen nach Gebrauch.
Bevor es ernst wird (du hast ja auch ein Backup der Datenbank gemacht, oder? ;)), kann man erstmal unter “actions” auf den Button “dry run” drücken. In diesem Fall passiert nichts, es wird nur eine Suchen-und-Ersetzen simuliert. Hier sieht man dann schon im Vorfeld, welche Daten verändert werden.
So, nun aber genug getestet, jetzt legen wir los und drücken auf “live run”. Je nach Größe der Datenbank kann durchaus etwas dauernd. Nicht die Geduld verlieren.
Nicht vergessen: den Ordner mit dem Script direkt wieder vom Server löschen!
Seite auf mixed content kontrollieren
Wir haben nun die Einstellungen in WordPress angepasst und die Datenbank modifiert. Damit sollte die Seite nun verschlüsselt sein und der Aufruf über https funktionierten.
Wenn alles passt, sollte die Browser-Adresszeile nun so aussehen:
Ein Schloß ohne Warndreieck. Die Seite ist erfolgreich auf https umgestellt worden. Allerdings sollte man nicht nur die Startseite checken, sondern sich auch mal munter durch die Seite klicken um zu sehen, ob wirklich überall nur das Schloß zu sehen ist.
Taucht irgendwo das Warndreieck auf , dann versteckt sich hier noch mixed content.
Gerade ältere Plugins oder Widgets binden gerne mal Bilder ohne https ein.
Ein weiterer, oft für mixed content sorgende Quelle: Webfonts. Viele ältere Themes haben diese noch mit http eingebunden.
Die Suche nach mixed content kann ganz schön nervig sein. Vor allem bei WordPress-Installationen die schon ein paar Jahre auf dem Buckel haben und mit der Zeit gewachsen sind und so die ein oder andere Altlast mit sich schleppen.
Bei diesem Blog musste ich zum Beispiel schon einige Zeit suchen, bis ich alle Übeltäter gefunden hatte. Dafür ging es bei der Grillpodcast-Seite ratzfatz, nach den Änderungen in der Datenbank war hier schon alles klar.
301-Umleitung einrichten
Nachdem der mixed content nun beseitigt wurde, kommt ein nächster wichtiger Schritt, denn:
Momentan ist deine Seite über http und https erreichbar. An sich nicht schlimm. Aber wir möchten ja, das die Besucher unsere Seite verschlüsselt besuchen. Da die wenigstens extra ein https vor die URL setzen werden, zwingen wir die Leute ein bisschen zu ihrem Glück.
Und zwar mit einer 301-Umleitung.
Bei all-inkl.com kann man das mit einem Klick machen, dazu muss man bei den Zertifikats-Einstellungen nur “SSL erzwingen” aktivieren.
Andere Hoster bieten bestimmt eine ähnliche 1-Klick-Funktion an. Ansonsten kann man die 301-Weiterleitung auch per Hand in der .htaccess-Datei festlegen.
Warum die 301-Weiterleitung ebenfall sehr wichtig ist:
Alle alten Links die von irgendwo auf deine Seite verlinken, werden so auch direkt auf https umgeleitet.
Außerdem vermeidet man mit der 301-Umleitung auch noch sogenannten Duplicate Content, denn: für Google und Co. ist die Seite ohne Umleitung doppelt erreichbar: unter http und unter https. Das ist nicht gut und würde von Google abgestraft. (Kleiner Exkurs: wer mehr über die Problematik mit Duplicate Content erfahren möchte, sollte sich mal den Artikel auf onpage.org durchlesen.)
Nun sollte deine Seite verschlüsselt unter https erreichbar sein! :)
Bonus: Podcast-Hosting mit Podlove Publisher unter https
Da ich unter https://www.feuerglutundherzblut.de den Grillpodcast hoste, sind im Podcast-Fall noch ein paar weitere Schritte notwendig.
Dazu geht man in das WordPress-Backend und klickt die Expert Settings des Podlove-Plugins an. Hier kontrollierst du, ob unter dem Punkt “Website Protocol” das Auswahlfeld auf “Hands Off (leave everything as configured by WordPress)” steht.
Tja, das war es dann auch schon, was wir im Podlove-Plugin machen bzw. kontrollieren müssen.
Eine Sache fehlt jetzt noch: wenn du deinen Podcast bei iTunes gelistet hast, musst du dort noch den Feed aktualisieren.
Podcast-Feed bei iTunes aktualisieren
Bei iTunes ist der Podcast-Feed bisher noch unter der alten URL ohne https eingebunden. Da Apple seit Ende 2016 endlich auch Let’s Encrypt-Zertifikate aktzeptiert, kann man den Feed bedenkenlos ändern. Zumindest Schlüssel mit einer Stärke von 2048 bit funktionieren eindwandfrei.
Den Feed kann man unter podcastsconnect.apple.com ändern.
Also schnell das http gegen https austauschen und auf “Feed aktualisieren” klicken.
Jetzt heißt es abwarten, die Aktualisierung des Feeds kann bis zu 24 Stunden dauern.
So, das war es dann aber nun wirklich. Jetzt sollte die WordPress-Seite inklusive Podcast komplett unter https erreichbar sein.
Wenn man das “SSL erzwingen” gleich zum Anfang mit an macht, gibt es “automatisch” keinen Mixed content. So jedenfalls meine Erfahrung.
@DirkNB: Ja, das Problem ist nur, dass du ja nur deine eigenen Inhalte mit dem SSL-Zwang “belegen” kannst. Benutzt dein Theme zum Beispiel Google-Fonts, die noch über http eingebunden werden, wird diese URL nicht auf https umgeleitet.
Auch bestimmte externe Grafiken werden gerne mal noch über https eingebunden – die sorgen dann auch für mixed content.
Bei der Umstellung dieses Blogs z.B. habe ich zwei uralte Widgets rausgeworgen, weil die Elemente nur über http eingebunden haben. Ein Update dafür gab es leider nicht.
Viele Grüße
Nico