WordPress auf SSL umstellen

blog auf ssl umstellenBlogger, die ihren Blog selbst hosten, sehen sich irgendwann mit dem Thema SSL konfrontiert. Suchmaschinen bevorzugen Seiten, die verschlüsselt sind und die neue Datenschutzverordnung verlangt eine sichere Verbindung, wenn Kundendaten übertragen werden, wie zum Beispiel eine Mailadresse in den Kommentaren. Nicht zuletzt werden verschlüsselte Seiten von Browsern schneller übertragen und die Surfgeschwindigkeit erhöht.

Ein SSL-Zertifikat kostet aber leider deutlich mehr als die Domain und der Webspace. In meinem Fall ist der Provider Hosteurope und ein SSL-Zertifikat kostet mal eben das Doppelte wie Domain und Webspace. Das Geld möchte ich lieber in Bücher oder andere Software ausgeben und greife zur kostenfreien Variante.

Ehrlich gesagt sind die meisten Anleitungen im Netz, die mir begegnet sind, wenig hilfreich, weil nicht im Detail erklärt wird, wie ich einen WordPress-Blog auf SSL umstelle. Gerade bei der Erstellung des SSL-Zertifikats bin ich immer wieder hängengeblieben, weil nicht erklärt wurde, welche Datei ich nun wohin kopieren soll.

Deswegen kommt hier nun eine weitere Anleitung, wie ein WordPress-Blog auf SSL umgestellt werden kann.

Kostenfreies SSL-Zertifikat

Da gibt es im Grunde genommen lediglich einen Anbieter, nämlich Lets Encrypt, der ein kostenfreies Zertifikat mit einer Gültigkeit von 90 Tagen zur Verfügung stellt. Wer denkt, er bräuchte nur auf die Homepage gehen, um sich dort ein Zertifikat herunterzuladen, der sieht sich mit vielen mehr oder weniger kryptischen Anleitungen konfrontiert, die selbst die Blogger überfordern, die schon etwas länger dabei sind.

Aber es gibt eine Lösung. Mindestens zwei Webseiten habe ich gefunden, auf denen man sich etwas einfacher und bequemer ein SSL-Zertifikat erstellen lassen kann. Auf zerossl finde ich den Weg zum Zertifikat etwas mühsamer, so dass ich hier den Weg von sslforfree zeige.

Das erstellte Zertifikat ist für drei Monate gültig, so dass man die Prozedur vier Mal im Jahr durchführen muss. Ich denke, dass dieser Aufwand die recht hohen Kosten der alternativen SSL-Zertifikate durchaus rechtfertigt.

Schritt für Schritt Anleitung

Für die Erstellung des SSL-Zertifikats muss der Browser Chrome oder Firefox verwendet werden, da mit anderen Browsern eine Fehlermeldung bei der Erstellung des Zertifikats erscheint!

Zuerst muss man auf der Seite sslforfree.com seine Domain und Subdomains angeben (also fl-e.de und nicht http://fl-e.de) und klickt auf »Create Free SSL Certificate«.

Es soll wohl auch mit Wildcards funktionieren (also Sternchen, so dass alle Subdomains mit erfasst werden), aber bei mir blieb der Versuch erfolglos, so dass ich zwei Domains eingetragen habe. In meinem Fall hätte der Eintrag »*.fl-e.de fl-e.de« zum Erfolg führen sollen. Ich weiß nicht so recht, was schief gelaufen ist.

startfenster von ssl for free

Im nächsten Schritt stehen dem User drei Möglichkeiten zur Verfügung, wie er die Verifizierung durchführen kann.

  • Die automatische Verifizierung (»Automatic FTP Verification«) funktioniert nur dann, wenn die Website im ftp-Verzeichnis des Providers nicht in Unterverzeichnissen liegt.
  • Die manuelle Verifikation (»Manual Verification (DNS)«) über einen DNS-Eintrag kann relativ langwierig sein, weil die Änderungen in den DNS-Einträgen erst nach ein oder zwei Tagen von den Providern umgesetzt werden.
  • Deshalb empfehle ich die Nutzung der manuellen Verifikation mittels Dateien (»Manual Verification«).

auswahl bei ssl for free

Anschließend wird unterhalb eine kurze Anleitung eingeblendet mit Hinweisen darüber, welche Ports offen sein müssen. Mit einem Klick auf »Manually Verify Domain« geht es weiter.

ssl for free step 2

  1. Nun müssen ein oder mehrere Download-Files heruntergeladen werden. Pro angegebener Domain wird eine Datei angegeben. Bei diesen Dateien handelt es sich um Textschnipsel ohne Inhalt.
  2. In den Pfaden der angegebenen Domains muss auf der obersten Levelebene die Ordner ».well-known/acme-challenge« angelegt werden. Dafür verwendet man einfach ein ftp-Programm (mit dem der Blogger auch die Wrdpress-Files hochgeladen hat).
  3. In diesen Ordner legt man die eben heruntergeladenen Dateien.
  4. Durch einen Klick auf die angezeigten Links (im Unterpunkt 5.) sollte der Upload getestet werden. Kommt eine Fehlermeldung, ist etwas falsch gelaufen und man sollte die Ordnerstruktur und die Dateinamen prüfen. Wird die kryptischen Zeichenfolge angezeigt, ist alles okay.
  5. Nun können die Zertifikate mit einem Klick auf »Download SSL Certificate« erstellt und heruntergeladen werden.
  6. Bei mir kam es hin und wieder zu einem “Timeout”-Fehler. In diesem Fall haben die Server zu lange gebraucht, um zu antworten. Dann im Browser die Seite neu laden (und auf Daten erneut senden klicken).
  7. Es empfiehlt sich, ein Benutzerkonto anzulegen, damit eine Verlängerung bzw. eine Erneuerung des Zertifikats einfacher von der Hand geht.

ssl for free final

Nun hat man drei Dateien:

  1. ca_bundle.crt
  2. certificate.crt
  3. private.key

Falls dies nicht funktioniert, sollte nochmals geprüft werden, welcher Browser verwendet wird. Die Erstellung des SSL-Zertifikats funktioniert nur mit Chrome oder Firefox! Bei anderen Browsern erscheint eine Fehlermeldung.

Bei einer Verlängerung des Zertifikats wird genau der gleiche Weg gegangen. Hat man ein Benutzerkonto angelegt, muss man lediglich auf “Renew” klicken und man gelangt genau zu den oben gezeigten Fenstern. Die Prozedur bleibt identisch.

Diese Dateien müssen nun manuell hochgeladen werden. Wie das funktioniert ist natürlich vom Provider abhängig. Für gewöhnlich gibt es mittlerweile für jeden Provider eine Anleitung, wie dies funktioniert. Ich zeige die Vorgehensweise anhand des KIS (Kundeninformationssystem) von Hosteurope.


Werbung


Hochladen des Zertifikats

Nach dem erfolgreichen Erstellen des Zertifikats müssen nun drei Dateien vorliegen, die nun beim Provider hochgeladen werden. Ich zeige es hier am Beispiel von Hosteurope, wobei das Prozedere bei den Providern ähnlich ist.

Zuerst loggt man sich im KIS von Hosteurope ein und wechselt zum Webhosting. Dort findet sich der Menüpunkt »Sicherheit&SSL« mit dem Unterpunkt »SSL administrieren«.

ssl im kis von hosteurope

Nun muss auf »Zuweisen« oder wie auf dem Screenshot zu sehen »Ersetzen« geklickt werden (falls schon ein Zertifikat hochgeladen wurde). In beiden Fällen öffnet sich die gleiche Eingabemaske.

KIS hosteurope ssl option

In dieser Maske muss mit einem Klick auf »Datei auswählen« hinter »Zertifikat« die Datei »certificate.crt« ausgewählt werden und mit einem Klick auf »Datei auswählen« hinter »Key« die Datei »private.key«. In meinem Fall musste ich noch die Datei »ca_bundle.crt« hochladen, damit das SSL-Zertifikat von allen Diensten akzeptiert wurde. Wenn ich das richtig verstanden habe, wird mit dieser Datei die Zertifizierungsstelle angegeben. Mit einem Klick auf »Absenden« wird das Zertifikat hochgeladen.

ssl zertifikat eingabemaske

Es kann bis zu 48 Stunden dauern, bis das Zertifikat funktioniert. Bei anderen Providern muss nun zusätzlich bei den Domains die SSL-Verbindung aktiviert werden. Bei Hosteurope ist dies nicht der Fall und das globale Zertifikat wird automatisch allen Domains zugewiesen.

Ob es funktioniert erkennt man daran, dass die Seite über https erreichbar ist. Es sind nach dem Upload also beide Varianten aktiv – sowohl http als auch https. Das wird nun für die Dauer der Umstellung auch so bleiben und ist nicht weiter tragisch, auch wenn das bedeutet, dass die Seite im Google-Ranking kurzfristig sinkt.

Keine Sorge: Am Ende der Umstellung wird der Blog nur noch über die sichere Verbindung erreichbar sein. Dafür wird die .htaccess-Datei modifiziert, was allerdings der allerletzte Schritt bei der SSL-Umstellung ist.

Backup des Blogs

Es empfiehlt sich auch unabhängig von der SSL-Umstellung ein regelmäßiges Backup des Blogs durchzuführen. Ich persönlich nutze dafür das Plugin UpdraftPlus Backup/Restore und lasse die Backups in einer Cloud speichern. Das geschieht bei mir in regelmäßigen Abständen. Vor der SSL-Umstellung empfiehlt es sich, ein frisches Backup durchzuführen.

Wie sinnvoll dieser Tipp ist, hat sich bei meiner Umstellung gezeigt, denn ich habe mir beide Blogs zerschossen und konnte diese nur durch die Backups wiederherstellen. Was genau passiert ist, vermag ich gar nicht mal zu sagen – auf einmal war der eine Blog gar nicht mehr sichtbar, beim anderen kam ich nicht mehr ins Backend.

Es half nur, die Datenbank und die Dateien auf den Servern zu löschen, WordPress neu zu installieren und das Backup wieder einzuspielen.

Also nochmals die dringende Empfehlung, vor der Umstellung des Blogs, ein Backup zu erstellen!

Blog auf https umstellen

Im Backend des Blogs unter »Einstellungen« – »Allgemein« die URL von http nach https umstellen.

wordpress backend url umstellen

Nun werden alle Besucher des Blogs zur sicheren Seite umgeleitet, was kein Problem darstellt, da sowohl die sichere als auch die unsichere Version des Blogs aktiv ist. Wer in dieser Phase auf den Blog zugreift, bekommt eine Fehlermeldung, dass unsichere Elemente vorhanden sind (o.ä.), die im nächsten Schritt eliminiert werden.

Wer an dieser Stelle einen Fehler gemacht hat, der Blog noch nicht über die sichere Verbindung erreichbar ist oder man sich schlichtweg vertippt hat, dem kann geholfen werden. Im nächsten Abschnitt zeige ich wie. Alle anderen können sich nun den unsicheren Elementen des Blogs kümmern.

Dafür wird das Plugin »Better Search Replace« verwendet, das recht zuverlässig die Datenbanken nach den entsprechenden Einträgen durchsucht und ersetzt. Es wird gesucht nach den http-Links die durch das https-Pendand ersetzt werden. Dabei müssen alle Tabellen markiert sein und der Haken bei Testlauf entfernt werden.

Dieser Schritt sollte nur dann durchgeführt werden, wenn ein Backup erstellt wurde!

wordpress links ersetzen

 

Damit ist die Umstellung fast fertig. Bevor ich auf die Änderung in der .htaccess-Datei komme, ein kurzer Hinweis zur URL-Umstellung.

 

URL zu früh oder falsch umgestellt

Ja, das ist mir dann tatsächlich passiert. Ich habe die URL im Blog schon auf https umgestellt, das Zertifikat wurde vom Hoster aber noch nicht bereitgestellt. Diese Umstellung kann bis zu 48 Stunden dauern. Auch Tippfehler schleichen sich schon mal gerne ein, so dass der Blog anschließend nicht mehr erreichbar ist. Der User kann sich also nicht mehr in seinen Blog einloggen, weil er dauernd auf die https-Version des Blogs umgeleitet wird, die ja nicht funktioniert oder eben zu dem Link mit dem Tippfehler.

Der User braucht aber nur kurz verzweifeln, denn es gibt eine Lösung. Man kann die URL des Blogs nämlich in der Datei wp-config.php händisch festlegen. Dafür muss über ein ftp-Programm diese Datei auf den heimischen Rechner heruntergeladen werden und mit einem Texteditor geöffnet werden.

Unter keinen Umständen darf ein Textverarbeitungsprogramm wie Microsoft Word verwendet werden, da diese Programme ihren eigenen Code in die Datei schreiben!

In der Datei sucht man die Zeile

/* That’s all, stop editing! Happy blogging. */

Darüber muss folgender Code eingefügt werden

/* Custom WordPress URL. */
define( ‘WP_SITEURL’, ‘https://fl-e.de’ );
define( ‘WP_HOME’, ‘https://fl-e.de’ );

Selbstverständlich muss die eigene URL an der entsprechenden Stelle eingefügt werden. Mit diesem Eintrag ist der Blog nun wieder erreichbar. Gleichzeitig ist eine Umstellung der URL in den Einstellungen des Blogs nicht mehr möglich. Die Felder sind nun ausgegraut. Dies ist ein relativ sicherer Schutz gegen versehentliches Ändern der URL.

.htaccess anpassen

Hier lag einer der gröbsten Schnitzer in den Anleitungen, die ich im Netz gefunden hatte. Nie wäre ich auf die Idee gekommen, dass in diesem Code der Fehler gelegen haben könnte, weil dieser von meinem Provider (fehlerhaft) angegeben wurde. Das führte schlussendlich dazu, dass ich meine Blogs zerschossen hatte, so dass diese nicht mehr erreichbar waren und ich diese aus den Backups zurückspielen musste.

Wozu das Ganze? Es existieren im Netz unzählige Links auf den Blog, aber noch mit der http-Adresse. Damit diese auf die entsprechende https-Variante umgeleitet werden, bedarf es einen Code. Bei meinen Blogs musste der Code am Anfang (und nicht am Ende!) der Datei eingetragen werden. Außerdem funktionierte er nur in der Form, wie ich ihn hier zitiere. Im Netz gibt es andere Formen des Codes, die nur scheinbar identisch sind. Denn manchmal fehlt ein Satzzeichen, das entscheidend sein kann.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Diese Anpassung ist zwingend notwendig und sollte ganz zum Schluss erfolgen.

Damit ist die Umstellung des Blogs auf https fertiggestellt und dieser sollte nur noch über die sichere Verbindung erreichbar sein, auch wenn die unsichere http-URL in die Adressleiste des Browsers eingegeben wird.

 


Werbung

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.