WordPress auf SSL umstellen

blog auf ssl umstellenBlog­ger, die ihren Blog selb­st hosten, sehen sich irgend­wann mit dem The­ma SSL kon­fron­tiert. Such­maschi­nen bevorzu­gen Seit­en, die ver­schlüs­selt sind und die neue Daten­schutzverord­nung ver­langt eine sichere Verbindung, wenn Kun­den­dat­en über­tra­gen wer­den, wie zum Beispiel eine Mailadresse in den Kom­mentaren. Nicht zulet­zt wer­den ver­schlüs­selte Seit­en von Browsern schneller über­tra­gen und die Sur­fgeschwindigkeit erhöht.

Ein SSL-Zer­ti­fikat kostet aber lei­der deut­lich mehr als die Domain und der Web­space. In meinem Fall ist der Provider Hos­teu­rope und ein SSL-Zer­ti­fikat kostet mal eben das Dop­pelte wie Domain und Web­space. Das Geld möchte ich lieber in Büch­er oder andere Soft­ware aus­geben und greife zur kosten­freien Vari­ante.

Ehrlich gesagt sind die meis­ten Anleitun­gen im Netz, die mir begeg­net sind, wenig hil­fre­ich, weil nicht im Detail erk­lärt wird, wie ich einen Word­Press-Blog auf SSL umstelle. Ger­ade bei der Erstel­lung des SSL-Zer­ti­fikats bin ich immer wieder hän­genge­blieben, weil nicht erk­lärt wurde, welche Datei ich nun wohin kopieren soll.

Deswe­gen kommt hier nun eine weit­ere Anleitung, wie ein Word­Press-Blog auf SSL umgestellt wer­den kann.

Kostenfreies SSL-Zertifikat

Da gibt es im Grunde genom­men lediglich einen Anbi­eter, näm­lich Lets Encrypt, der ein kosten­freies Zer­ti­fikat mit ein­er Gültigkeit von 90 Tagen zur Ver­fü­gung stellt. Wer denkt, er bräuchte nur auf die Home­page gehen, um sich dort ein Zer­ti­fikat herun­terzu­laden, der sieht sich mit vie­len mehr oder weniger kryp­tis­chen Anleitun­gen kon­fron­tiert, die selb­st die Blog­ger über­fordern, die schon etwas länger dabei sind.

Aber es gibt eine Lösung. Min­destens zwei Web­seit­en habe ich gefun­den, auf denen man sich etwas ein­fach­er und beque­mer ein SSL-Zer­ti­fikat erstellen lassen kann. Auf zerossl finde ich den Weg zum Zer­ti­fikat etwas müh­samer, so dass ich hier den Weg von sslfor­free zeige.

Das erstellte Zer­ti­fikat ist für drei Monate gültig, so dass man die Proze­dur vier Mal im Jahr durch­führen muss. Ich denke, dass dieser Aufwand die recht hohen Kosten der alter­na­tiv­en SSL-Zer­ti­fikate dur­chaus recht­fer­tigt.

Schritt für Schritt Anleitung

Für die Erstel­lung des SSL-Zer­ti­fikats muss der Brows­er Chrome oder Fire­fox ver­wen­det wer­den, da mit anderen Browsern eine Fehler­mel­dung bei der Erstel­lung des Zer­ti­fikats erscheint!

Zuerst muss man auf der Seite sslforfree.com seine Domain und Sub­do­mains angeben (also fl‑e.de und nicht http://fl‑e.de) und klickt auf »Cre­ate Free SSL Cer­tifi­cate«.

Es soll wohl auch mit Wild­cards funk­tion­ieren (also Sternchen, so dass alle Sub­do­mains mit erfasst wer­den), aber bei mir blieb der Ver­such erfol­g­los, so dass ich zwei Domains einge­tra­gen habe. In meinem Fall hätte der Ein­trag »*.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äch­sten Schritt ste­hen dem User drei Möglichkeit­en zur Ver­fü­gung, wie er die Ver­i­fizierung durch­führen kann.

  • Die automa­tis­che Ver­i­fizierung (»Auto­mat­ic FTP Ver­i­fi­ca­tion«) funk­tion­iert nur dann, wenn die Web­site im ftp-Verze­ich­nis des Providers nicht in Unter­verze­ich­nis­sen liegt.
  • Die manuelle Ver­i­fika­tion (»Man­u­al Ver­i­fi­ca­tion (DNS)«) über einen DNS-Ein­trag kann rel­a­tiv lang­wierig sein, weil die Änderun­gen in den DNS-Ein­trä­gen erst nach ein oder zwei Tagen von den Providern umge­set­zt wer­den.
  • Deshalb empfehle ich die Nutzung der manuellen Ver­i­fika­tion mit­tels Dateien (»Man­u­al Ver­i­fi­ca­tion«).

auswahl bei ssl for free

Anschließend wird unter­halb eine kurze Anleitung einge­blendet mit Hin­weisen darüber, welche Ports offen sein müssen. Mit einem Klick auf »Man­u­al­ly Ver­i­fy Domain« geht es weit­er.

ssl for free step 2

  1. Nun müssen ein oder mehrere Down­load-Files herun­terge­laden wer­den. Pro angegeben­er Domain wird eine Datei angegeben. Bei diesen Dateien han­delt es sich um Textschnipsel ohne Inhalt.
  2. In den Pfaden der angegebe­nen Domains muss auf der ober­sten Lev­elebene die Ord­ner ».well-known/acme-chal­lenge« angelegt wer­den. Dafür ver­wen­det man ein­fach ein ftp-Pro­gramm (mit dem der Blog­ger auch die Wrd­press-Files hochge­laden hat).
  3. In diesen Ord­ner legt man die eben herun­terge­lade­nen Dateien.
  4. Durch einen Klick auf die angezeigten Links (im Unter­punkt 5.) sollte der Upload getestet wer­den. Kommt eine Fehler­mel­dung, ist etwas falsch gelaufen und man sollte die Ord­ner­struk­tur und die Dateina­men prüfen. Wird die kryp­tis­chen Zeichen­folge angezeigt, ist alles okay.
  5. Nun kön­nen die Zer­ti­fikate mit einem Klick auf »Down­load SSL Cer­tifi­cate« erstellt und herun­terge­laden wer­den.
  6. Bei mir kam es hin und wieder zu einem “Timeout”-Fehler. In diesem Fall haben die Serv­er zu lange gebraucht, um zu antworten. Dann im Brows­er die Seite neu laden (und auf Dat­en erneut senden klick­en).
  7. Es emp­fiehlt sich, ein Benutzerkon­to anzule­gen, damit eine Ver­längerung bzw. eine Erneuerung des Zer­ti­fikats ein­fach­er 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 funk­tion­iert, sollte nochmals geprüft wer­den, welch­er Brows­er ver­wen­det wird. Die Erstel­lung des SSL-Zer­ti­fikats funk­tion­iert nur mit Chrome oder Fire­fox! Bei anderen Browsern erscheint eine Fehler­mel­dung.

Bei ein­er Ver­längerung des Zer­ti­fikats wird genau der gle­iche Weg gegan­gen. Hat man ein Benutzerkon­to angelegt, muss man lediglich auf “Renew” klick­en und man gelangt genau zu den oben gezeigten Fen­stern. Die Proze­dur bleibt iden­tisch.

Diese Dateien müssen nun manuell hochge­laden wer­den. Wie das funk­tion­iert ist natür­lich vom Provider abhängig. Für gewöhn­lich gibt es mit­tler­weile für jeden Provider eine Anleitung, wie dies funk­tion­iert. Ich zeige die Vorge­hensweise anhand des KIS (Kun­den­in­for­ma­tion­ssys­tem) von Hos­teu­rope.


Wer­bung

Hochladen des Zertifikats

Nach dem erfol­gre­ichen Erstellen des Zer­ti­fikats müssen nun drei Dateien vor­liegen, die nun beim Provider hochge­laden wer­den. Ich zeige es hier am Beispiel von Hos­teu­rope, wobei das Prozedere bei den Providern ähn­lich ist.

Zuerst log­gt man sich im KIS von Hos­teu­rope ein und wech­selt zum Web­host­ing. Dort find­et sich der Menüpunkt »Sicherheit&SSL« mit dem Unter­punkt »SSL admin­istri­eren«.

ssl im kis von hosteurope

Nun muss auf »Zuweisen« oder wie auf dem Screen­shot zu sehen »Erset­zen« gek­lickt wer­den (falls schon ein Zer­ti­fikat hochge­laden wurde). In bei­den Fällen öffnet sich die gle­iche Eingabe­maske.

KIS hosteurope ssl option

In dieser Maske muss mit einem Klick auf »Datei auswählen« hin­ter »Zer­ti­fikat« die Datei »certificate.crt« aus­gewählt wer­den und mit einem Klick auf »Datei auswählen« hin­ter »Key« die Datei »private.key«. In meinem Fall musste ich noch die Datei »ca_bundle.crt« hochladen, damit das SSL-Zer­ti­fikat von allen Dien­sten akzep­tiert wurde. Wenn ich das richtig ver­standen habe, wird mit dieser Datei die Zer­ti­fizierungsstelle angegeben. Mit einem Klick auf »Absenden« wird das Zer­ti­fikat hochge­laden.

ssl zertifikat eingabemaske

Es kann bis zu 48 Stun­den dauern, bis das Zer­ti­fikat funk­tion­iert. Bei anderen Providern muss nun zusät­zlich bei den Domains die SSL-Verbindung aktiviert wer­den. Bei Hos­teu­rope ist dies nicht der Fall und das glob­ale Zer­ti­fikat wird automa­tisch allen Domains zugewiesen.

Ob es funk­tion­iert erken­nt man daran, dass die Seite über https erre­ich­bar ist. Es sind nach dem Upload also bei­de Vari­anten aktiv – sowohl http als auch https. Das wird nun für die Dauer der Umstel­lung auch so bleiben und ist nicht weit­er tragisch, auch wenn das bedeutet, dass die Seite im Google-Rank­ing kurzfristig sinkt.

Keine Sorge: Am Ende der Umstel­lung wird der Blog nur noch über die sichere Verbindung erre­ich­bar sein. Dafür wird die .htac­cess-Datei mod­i­fiziert, was allerd­ings der aller­let­zte Schritt bei der SSL-Umstel­lung ist.

Backup des Blogs

Es emp­fiehlt sich auch unab­hängig von der SSL-Umstel­lung ein regelmäßiges Back­up des Blogs durchzuführen. Ich per­sön­lich nutze dafür das Plu­g­in Updraft­Plus Backup/Restore und lasse die Back­ups in ein­er Cloud spe­ich­ern. Das geschieht bei mir in regelmäßi­gen Abstän­den. Vor der SSL-Umstel­lung emp­fiehlt es sich, ein frisches Back­up durchzuführen.

Wie sin­nvoll dieser Tipp ist, hat sich bei mein­er Umstel­lung gezeigt, denn ich habe mir bei­de Blogs zer­schossen und kon­nte diese nur durch die Back­ups wieder­her­stellen. Was genau passiert ist, ver­mag ich gar nicht mal zu sagen – auf ein­mal war der eine Blog gar nicht mehr sicht­bar, beim anderen kam ich nicht mehr ins Back­end.

Es half nur, die Daten­bank und die Dateien auf den Servern zu löschen, Word­Press neu zu instal­lieren und das Back­up wieder einzus­pie­len.

Also nochmals die drin­gende Empfehlung, vor der Umstel­lung des Blogs, ein Back­up zu erstellen!

Blog auf https umstellen

Im Back­end des Blogs unter »Ein­stel­lun­gen« – »All­ge­mein« die URL von http nach https umstellen.

wordpress backend url umstellen

Nun wer­den alle Besuch­er des Blogs zur sicheren Seite umgeleit­et, was kein Prob­lem darstellt, da sowohl die sichere als auch die unsichere Ver­sion des Blogs aktiv ist. Wer in dieser Phase auf den Blog zugreift, bekommt eine Fehler­mel­dung, dass unsichere Ele­mente vorhan­den sind (o.ä.), die im näch­sten Schritt eli­m­iniert wer­den.

Wer an dieser Stelle einen Fehler gemacht hat, der Blog noch nicht über die sichere Verbindung erre­ich­bar ist oder man sich schlichtweg ver­tippt hat, dem kann geholfen wer­den. Im näch­sten Abschnitt zeige ich wie. Alle anderen kön­nen sich nun den unsicheren Ele­menten des Blogs küm­mern.

Dafür wird das Plu­g­in »Bet­ter Search Replace« ver­wen­det, das recht zuver­läs­sig die Daten­banken nach den entsprechen­den Ein­trä­gen durch­sucht und erset­zt. Es wird gesucht nach den http-Links die durch das https-Pen­dand erset­zt wer­den. Dabei müssen alle Tabellen markiert sein und der Hak­en bei Test­lauf ent­fer­nt wer­den.

Dieser Schritt sollte nur dann durchge­führt wer­den, wenn ein Back­up erstellt wurde!

wordpress links ersetzen

 

Damit ist die Umstel­lung fast fer­tig. Bevor ich auf die Änderung in der .htac­cess-Datei komme, ein kurz­er Hin­weis zur URL-Umstel­lung.

 

URL zu früh oder falsch umgestellt

Ja, das ist mir dann tat­säch­lich passiert. Ich habe die URL im Blog schon auf https umgestellt, das Zer­ti­fikat wurde vom Hoster aber noch nicht bere­it­gestellt. Diese Umstel­lung kann bis zu 48 Stun­den dauern. Auch Tippfehler schle­ichen sich schon mal gerne ein, so dass der Blog anschließend nicht mehr erre­ich­bar ist. Der User kann sich also nicht mehr in seinen Blog ein­loggen, weil er dauernd auf die https-Ver­sion des Blogs umgeleit­et wird, die ja nicht funk­tion­iert 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äm­lich in der Datei wp-config.php händisch fes­tle­gen. Dafür muss über ein ftp-Pro­gramm diese Datei auf den heimis­chen Rech­n­er herun­terge­laden wer­den und mit einem Texte­d­i­tor geöffnet wer­den.

Unter keinen Umstän­den darf ein Textver­ar­beitung­spro­gramm wie Microsoft Word ver­wen­det wer­den, da diese Pro­gramme ihren eige­nen Code in die Datei schreiben!

In der Datei sucht man die Zeile

/* That’s all, stop edit­ing! Hap­py blog­ging. */

Darüber muss fol­gen­der Code einge­fügt wer­den

/* Cus­tom Word­Press URL. */
define( ‘WP_SITEURL’, ‘https://fl‑e.de’ );
define( ‘WP_HOME’, ‘https://fl‑e.de’ );

Selb­stver­ständlich muss die eigene URL an der entsprechen­den Stelle einge­fügt wer­den. Mit diesem Ein­trag ist der Blog nun wieder erre­ich­bar. Gle­ichzeit­ig ist eine Umstel­lung der URL in den Ein­stel­lun­gen des Blogs nicht mehr möglich. Die Felder sind nun aus­ge­graut. Dies ist ein rel­a­tiv sicher­er Schutz gegen verse­hentlich­es Ändern der URL.

.htaccess anpassen

Hier lag ein­er der gröb­sten Schnitzer in den Anleitun­gen, die ich im Netz gefun­den hat­te. Nie wäre ich auf die Idee gekom­men, dass in diesem Code der Fehler gele­gen haben kön­nte, weil dieser von meinem Provider (fehler­haft) angegeben wurde. Das führte schlussendlich dazu, dass ich meine Blogs zer­schossen hat­te, so dass diese nicht mehr erre­ich­bar waren und ich diese aus den Back­ups zurück­spie­len musste.

Wozu das Ganze? Es existieren im Netz unzäh­lige Links auf den Blog, aber noch mit der http-Adresse. Damit diese auf die entsprechende https-Vari­ante umgeleit­et wer­den, bedarf es einen Code. Bei meinen Blogs musste der Code am Anfang (und nicht am Ende!) der Datei einge­tra­gen wer­den. Außer­dem funk­tion­ierte er nur in der Form, wie ich ihn hier zitiere. Im Netz gibt es andere For­men des Codes, die nur schein­bar iden­tisch sind. Denn manch­mal fehlt ein Satzze­ichen, das entschei­dend sein kann.

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

Diese Anpas­sung ist zwin­gend notwendig und sollte ganz zum Schluss erfol­gen.

Damit ist die Umstel­lung des Blogs auf https fer­tiggestellt und dieser sollte nur noch über die sichere Verbindung erre­ich­bar sein, auch wenn die unsichere http-URL in die Adressleiste des Browsers eingegeben wird.

 


Wer­bung

 

Schreibe einen Kommentar

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