Netzgeflüster: WordPress-Blog (selbst gehostet) auf SSL (HTTPS) umstellen – ein How-To

Neulich hat die DSGVO alle wordpress.com-Blogger kalt erwischt. Das WordPress-Update, das einige wichtige Einstellungen mit sich bringt, kam erst kurz vor der Angst. Die Blogger, die selber hosten, konnten sich mit zahlreichen Plugins zum Großteil selber helfen. Denn das schöne an seinem selber gehosteten WordPress ist, dass man die volle Gewalt über sein System hat und anpassen kann wie man lustig ist (oder wie weit einen die CSS-, HTML- und PHP-Kenntnisse tragen). Der Nachteil ist: man muss sich kümmern. Liebe wordpress.com-Blogger ihr dürft euch dieses Mal also freuen: der heutige Beitrag richtet sich nicht an euch (lesen könnt ihr ihn aber natürlich trotzdem 😉 ). Für wordpress.com-User ist nämlich die verschlüsselte Übertragung via SSL-Standard (zu erkennen an dem HTTPS statt HTTP in der Adressleiste des Browsers) seit einiger Zeit automatisch eingestellt. User mit einem selber gehosteten WordPress müssen da noch einige Handgriffe tun. Im besten Fall kann das schnell gehen, im schlimmsten Fall ein bisschen Nerven kosten. Ein How-To. (Übrigens hat die Nutzung von SSL nur indirekt bzw bei speziellen Fällen mit der DSGVO zutun – deswegen erst recherchieren, bevor man in Panik verfällt. Der Artikel ist keine Rechtsberatung oder DSGVO-How-To, sondern beschränkt sich auf das Einstellen von SSL für einen WordPress-Blog.)

Warum SSL und wo wir hinwollen

Kaum zu glauben aber wahr, wir werden sehr viele Schritte unternehmen, „nur“ um das hier zu bekommen: ein grünes Vorhängeschloss in unseren Browsern, das verkündet, dass unsere Webseite sicher ist. Oh boy.

Aber hinter dem Vorhängeschloss steckt weitaus mehr. SSL (bzw heißt es heute eigentlich TLS) ist ein Sicherheitsstandard für die verschlüsselte Übertragung von Daten. SSL beschreibt Technologien und den Prozess wie diese verschlüsselte Übertragung stattfinden soll und sieht für die Übertragung einer „Webseite“ (also den Weg zwischen Server und Webbrowser eines Users) vor, dass dieser über das Web-Übertragungsprotokoll HTTPS funktionieren soll. Ihr erkennt das ganz leicht daran, dass eine Webseiten-URL mit diesem Protokollkennzeichner beginnt (angibt, dass es mittels dieses Protokolls geladen werden soll). Eben wie in https://miss-booleana.de. Fehlt dieses https, dann surft ihr wahrscheinlich auf einer Seite mittels http und die Inhalte, die ihr dort eingebt, werden unverschlüsselt übertragen. Jeder, der entsprechendes Know-How in IT hat, kann die also abfangen und mitlesen. Und für die Gegenrichtung gilt dasselbe. Hier wird vielleicht klar, warum das für eine DSGVO-konforme Webseite wichtig sein kann. Moderne Webbrowser machen das nochmal deutlicher, indem sie inzwischen neben der Adressleiste ein grünes oder rotes Vorhängeschloss anzeigen, das angibt, ob die Seite sicher ist oder nicht. Das Vorhängeschloss zu bekommen ist sicherlich ein Gütesiegel für die Webseite, aber der Gedanke dahinter ist das, was wir wirklich wollen: die sichere Datenübertragung.

Andere können das auch ganz wunderbar erklären, oder: an wen sich das How-To richtet

Ihr kennt mich. Ich schreibe nicht so oft How-Tos, weil ich es erschreckend unnötig finde dasselbe zu schreiben, was schon x andere getan haben. Deswegen verweise ich mal auf die hilfreichen Blogs der anderen. Auf elmastudio.de findet ihr eine Anleitung, die sich an diejenigen richtet, die mehr selber Hand anlegen (bspw. auf Lets Encrypt für das Zertifikat zurückgreifen, diverse WordPress-Dateien selber anpacken, etc.). Auf blogmojo.de gibt es ebenfalls eine gute, leicht verständliche und reichlich bebilderte Anleitung (allerdings empfehle ich bei Verwendung von Better Search and Replace zuerst einen Testdurchlauf zu machen, siehe unten).

Ansonsten richtet sich meine Anleitung an WordPress-User, die keinen virtuellen oder dedicated server beziehen, sondern einfach nur „webspace“, d.h. maximal einen phpMyAdmin-Zugang haben, aber keine Möglichkeit via Konsole ihre Server selber zu administrieren. Und an User, deren Blog schon einige Jährchen auf dem Buckel hat und ihre Webseite dementsprechend datenbank-seitig einiges an Speicher füllt. In dem Sinne: ran an den Speck.

Schritt 1: das Backup

Was tut man, bevor man am geliebten Blögchen rumwerkelt? Natürlich ein Backup. Das gründlichste und grundlegendste, das man tun kann ist dabei direkt den Kern zu sichern, d.h. die Datenbank. Auf codex.wordpress.org gibt es eine kurze und prägnante Anleitung für phpMyAdmin-Nutzer. Warum Datenbank? Weil das der direkte Speicherort des Blogs mit allen seinen Kommentaren und Beiträgen ist. Für den normalen .xml-Export oder die meisten Backup-Plugins brauch man ja zumindest einen „Blog“ um alles wiederherzustellen. Und im worst case … ja. Denken wir an schönere Dinge.

Schritt 2: SSL-Zertifikat installieren

Um via SSL Daten übertragen zu können, brauch man ein sogenanntes Zertifikat. Das Ding ist serverseitig das Herz der ganzen Angelegenheit, da es die Identität der Anwendung bestätigt und für den Schlüsselaustausch sorgt, der wiederum die verschlüsselte Übertragung gewährleistet. Wie man an so ein Zertifikat rankommt, ist bei jedem Webspace-Provider anders. In der Regel hat man eine Administrationsoberfläche für seine Domains und findet dort wahrscheinlich irgendwo einen Punkt Sicherheit oder ähnliches, unter dem man Zertifikate kaufen oder einstellen kann. Die Verschlüsselung ist in der Regel innerhalb weniger Minuten oder Stunden aktiv und man kann mit den folgenden Schritten weitermachen. Beispielsweise für Strato-Kunden gibt es hier eine Anleitung wie man umstellt. Leider sind viele Provider noch nicht darauf eingestellt, dass man die kostenlosen Lets Encrypt Zertifikate nutzen kann außer bei virtuellen und dedizierten Servern, auf denen die User das Zertifikat dann aber eh händisch einspielen müssten. Sprich: die meisten Provider lassen sich das was kosten. Sofern bei eurem Provider verfügbar, solltet ihr auch direkt in der Admin-Oberfläche eine permanente Weiterleitung einrichten, die dafür sorgt, dass wenn jemand eure Webseite über http anfordert, direkt https durch Weiterleitung forciert wird.

Achtung bei der Wahl des Pakets oder Zertifikats. Man sollte beim Kauf das Kleingedruckte lesen. Braucht man beispielsweise für eine Subdomain (https://webcomic.stefanie-hoefig.de) auch die Verschlüsselung/das Zertifikat, dann solltet ihr darauf achten, dass das auch durch ein SSL-Paket bei eurem Provider inkludiert ist. Kauft ihr ein Zertifikat für eine single domain, wäre nur https://stefanie-hoefig.de verschlüsselt erreichbar, sowie https://stefanie-hoefig.de/webcomic, aber nicht https://webcomic.stefanie-hoefig.de. Letzteres könntet ihr am Browser nicht mal erreichen, wenn ihr die Adresse eintippt, bzw. nur über http.

Schritt 3: Webseitenadresse anpassen

Im WordPress solltet ihr einstellen, dass eure Webseite jetzt standardmäßig über https erreichbar ist. Geht zu Einstellungen – Allgemein und ändert die URL. Danach müsst ihr euch erneut einloggen, da eure Session (Stichwort Cookie) ja bisher über http lief und jetzt quasi nicht mehr gültig ist.

Wenn ihr das gemacht habt, wird der Permalink normalerweise automatisch angepasst. Aber zur Sicherheit solltet ihr schauen, dass unter Einstellungen – Permalink auch https steht.

Schritt 4: URLs in Datenbank ersetzen

In den meisten Fällen, werdet ihr jetzt freudestrahlend eure Webseite öffnen und traurig auf die Adressleiste schauen, weil ihr trotzdem noch kein grünes Vorhängeschloss habt, trotz eines stolzen https in der URL. Warum? Die Webseite beinhaltet unter der Haube noch alle möglichen Links auf eure Bilder, CSS und andere Webseiten, die über http statt https abgerufen werden. Das nennt man dann Mixed Content, nämlich sicher und unsicher übertragener, was eure Webseite wiederum noch „nicht sicher“ macht. So ein schöner dicker, über viele Jahre gepflegter Blog hat aber sicherlich hunderte Beiträge voller Links. Man kann das händisch ändern, indem man das Datenbank-Update (am besten programmatisch) absucht und die http-Einträge mit entsprechenden https ersetzt. Dafür gibt es aber auch Plugins wie Better Search and Replace – der Name lässt wenig Zweifel offen, was das Plugin tut.

Nach der Installation findet ihr das Plugin unter Werkzeuge und könnt dort eingeben, das es eure alte URL mit der neuen ersetzen soll. So dürfte dann auch in Zukunft die Präfix von Bildquellen etc passen. Ich empfehle dringend Testlauf anzuhaken, da so die Änderungen noch nicht auf der Datenbank ausgeführt, sondern erstmal getestet werden. Falls Fehler auftreten, werden diese erst einmal angezeigt.

Schaue ich in meine Glaskugel, prophezeie ich euch, dass wenn ihr viele Jahre regelmäßig und massig gebloggt habt, dass die Tabelle mit den Beiträgen (wp_posts oder so) mächtig dick ist. In solchen Fällen kann es mit Better Search and Replace zu Fehlern kommen. In Einstellungen könnt ihr die maximale Seitenzahl runterschrauben und in einem weiteren Testlauf schauen, ob es diesmal durchläuft. Wenn alles grün ist, Häkchen bei Testlauf entfernen und es amtlich machen.

Da das Suchen und Ersetzen sich ja quasi einmal quer durch den persistierten Datenbestand eures Blogs fräst, ist es gut das im ersten Schritt angelegt Datenbank-Backup zu haben. Just in case.

Schritt 5: weiteren Mixed Content entfernen (optional)

Falls eure Webseite immer noch kein grünes Vorhängeschloss hat, liegt es wahrscheinlich an Links, die durch Plugins, das Theme etc. gesetzt werden. Am besten ihr schaut euch aufmerksam den Quellcode eurer Webseite im Browser an (Strg + U, und nicht das Dashboard, sondern die Webseite!) und sucht mal nach „http:“. So erkennt ihr leicht alle Quellen, die noch unverschlüsselt übertragen werden. Bei mir waren das beispielsweise hundealte Links in der Blogroll (Linklist), zwei Widgets (direkt rausgeschmissen), ein Plugin (direkt rausgeschmissen) und das Theme selber. Was man ändern kann, kann man natürlich ändern. Die Blogroll habe ich erstmal direkt aktualisiert, beim Theme selber hand angelegt und den Code angepasst.

Falls es eine ganz harte Nuss ist, mal in den Browser debug tools forschen.

Was ich nicht tun musste, aber vielleicht du

Wie in Schritt 2 beschrieben, habe ich bspw. die Umleitung von http auf https via Provider eingestellt. Wer die Möglichkeit in der Hosting-Administration beim Provider nicht hat oder gerne selber die Dateien anpackt, kann das wie auf blogmojo.de unter Schritt 6 beschrieben durch das Ändern der .htaccess tun.

Fazit und: was ist mit „Really Simple SSL“?

Dadurch, dass Provider sich entsprechend angepasst haben und es Plugins wie Better Search and Replace gibt, ist die Umstellung auf SSL längst kein K(r)ampf mehr. Und wenn doch, gibt es zig Troubleshooting-Artikel. Das längste bei dem ganzen Prozess sind tatsächlich die Backups vorher und die Bestellung oder Installation des Zertifikats. Wer aber irgendwo auf Hürden stößt oder sich nicht annähernd genug in IT bewandert fühlt, kann auch Plugins wie Really Simple SSL nutzen, die einem beispielsweise das Umleiten abnehmen. Aber auch hier ist ein Zertifikat vorausgesetzt, das Plugin kann einem nicht alles abnehmen. Ich persönlich finde es „sauberer“ wenn auf Datenbank-Level alles einmal gerade gezogen wurde. Daher würde ich auch Blogging-Einsteigern empfehlen direkt auf https anzufangen und bereits Bloggenden rate ich: wartet nicht zu lange mit der Umstellung. Es wird selten etwas leichter, wenn man bei einem Blog lange wartet.

Eine Frage, die sich selbst mir über mich selber aufdrängt ist, warum ich solange gewartet habe bei meinen eigenen Internetpräsenzen für das grüne Vorhängeschloss zu sorgen, schließlich weiß ich sehr wohl, dass SSL bei wordpress.com-Usern und im Internet allgemein seit Jahren der Wunsch-Standard ist. Faulheit spielt da eine Rolle, aber vielleicht nicht so wie ihr denkt. Als ich mich damals als HTTPS in aller Munde war informiert habe, was ich tun muss, waren die How-Tos noch wesentlich komplizierter, die Pakete beim Hoster teurer, Plugins wie „Better Search and Replace“ gab es noch nicht. Ich habe der Sache noch etwas Zeit gegeben und ich denke, das war auch nicht ganz verkehrt. Wie sind eure Erfahrungen mit SSL/TSL/HTTPS und der Umstellung? Wann habt ihr umgestellt? Oder müsst ihr noch??

Netzgeflüster ist eine Kategorie meines Blogs in der ich mich immer zwischen dem 10. und 15. eines jedes Monats Themen rund um IT, Forschung, Netzwelt, Internet und eben auch Gerüchten widme. 🙂

4 Antworten

  1. Den Artikel hätte ich vor ein paar Monaten gut gebraucht. XD Hatte da üble Probleme damit gehabt (aber ich war ja WordPress-Anfängerin…)

    Jetzt habe ich nur noch das Problem, dass die www-Adresse nicht gleich auf https:// weitergeleitet wird. Wenn man mein Blog mit http://www.hitodama.de öffnet, steht da nur „Seite nicht gefunden“ *seufz*

    1. Avatar von Miss Booleana
      Miss Booleana

      Oh ja sorry … der Artikel kam nicht früher, weil ich die Anleitung auch erst kurz vor der DSGVO gebraucht habe. Und eh es dann „Anleitungsmäßig“ geschrieben war, habe ich dieses Mal leider etwas Zeit verstreichen lassen. Ich staune auch gerade, ich wusste noch gar nicht, dass du gewechselt bist! Zur Zeit gehe ich meinen Feed Blog für Blog durch und bei dir bin ich noch nicht gelandet … wenn du es nicht gesagt hättest, hätte ich deinen Umzug jetzt vielleicht gar nicht mitbekommen :'( Bin einige Monate nicht mit dem Feedreader hinterhergekommen. Wie kommts, dass du jetzt bei WordPress bist und wie gefällt es dir? Du warst vorher auf Blogspot, oder?

      Ach ich glaube du hast gar kein Problem. Das „www“ ist in den meisten URLs überflüssig. Und scheinbar bei deiner auch. Wenn du es weglässt, dann leitet es einwandfrei von http zu https um. Also alles paletti oder? 😉

      1. Ja, ich wollte schon eigentlich länger zu WordPress gehen, weil ich es bei Blogger langsam etwas unübersichtlich fand. Aber die DGSVO hat mir den nötigen Tritt in den Hintern gegeben. ^^ Soweit gefällt es mir dort recht gut.

        Gut möglich, dass mein alter Blog (mit dem Blogspot-Link) in deinem Feedreader gespeichert ist, der ist derzeit geschlossen. Aber es würde mich freuen, wenn du den Weg zu meinem neuen alten Blog finden würdest. 😀

        Ich weiß schon, dass „www“ eher unnötig ist, aber mir geht’s schon um das Prinzip. Wenn ich andere Seiten mit „www“ davor aufrufen kann, ist das halt komisch, wenn mein „www“ gar nicht auf die https:// leitet. D: Wenn das aber nur mir passiert und nicht bei anderen… mhh, da muss ich mal andere befragen.

        1. Avatar von Miss Booleana
          Miss Booleana

          War es bei Blogger eigentlich schwieriger sich auf die DSGVO umzustellen? Mit WordPress und DSGVO habe ich mich ja ziemlich stark beschäftigt, aber das würde mich mal interessieren wie es bei anderen Blogplattformen aussieht.

          Danke nochmal für das Bescheid sagen 😉 Ich habe den Weg zu deinem neuen Blog gefunden und mir sehr froh, dass es zur Sprache kam. Es wäre sehr traurig gewesen, wenn wir uns blogtechnisch aus den Augen verlieren.

          Wahrscheinlich müsstest du dann bei deinem Provider angeben, dass von www auf die Adresse ohne www umgeleitet wird?

Schreibe einen Kommentar

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