Ich überlege ja schon ne ganze Weile, ob ich diese Seite nicht mal mit nem SSL-Zertifikat schützen soll(te). Bisher scheiterte es an Zeit, Lust/Motivation und dem (wo auch immer er herkommt?) Schwaben in mir: Zertifikate kosten Geld und zwar nicht wenig. Das war es mir bisher nicht wert, bei teilweise unter 100 Aufrufen pro Monat.

Hier springt nun letsencrypt.org in die Presche, da kosten die SSL-Zertifikate nämlich genau Nullkommanix. Ja, tatsächlich, das gibt’s. Kann man von halten, was man will, aber die großen Browser unterstützen das und vertrauen den letsencrypt.org-Zertifikaten. Damit sind obige Überlegungen vor allem in Hinblick auf das monetäre Hinauszögern ad acta zu legen, sprich: Es kann losgehen. Also theoretisch, denn das Erzeugen eines SSL-Zertifikats ist laut der Dokumentation nix, was man mal „im Vorbeigehen“ erledigt bekommt.

all-inkl.com & letsencrypt.org
all-inkl.com & letsencrypt.org

Und genau hier glänzt mein Provider: Bei all-inkl.com habt ihr die wunderbare Möglichkeit, letsencrypt.org-Zertifikate direkt und kostenfrei über das KAS zu beantragen und einzubinden! Ich schleichwerbe ja ungern, aber soweit ich das überblicke, ist das derzeit ein Alleinstellungsmerkmal von all-inkl.com.

Alles, was ihr tun müsst, ist euch im KAS anzumelden, und dann via Domain => Domain auswählen => SSL-Schutz => bearbeiten => Register Let’s Encrypt den Haftungsausschluss zu akzeptieren. Beantragung und Installation geschieht völlig automatisch und ohne, dass ihr euch durch die Doku von letsencrypt.org wühlen müsst.

Gut, damit wäre die erste (und bisher größte) Hürde überwunden, nach der Beantragung dauert es nur Minuten, bis das Zertifikat aktiv und eure Website per https aufrufbar ist – allerdings „weiß“ ja eure WordPress-Installation noch nix von ihrem Glück, hier muss nun nachbearbeitet werden. Mich hat es ca. 30 Minuten gekostet, bis ich meine Installation entsprechend umgebaut hatte, die einzelnen Schritte habe ich nachfolgend mal aufgelistet.

Bevor ihr nun ans Nachbauen geht: Macht unbedingt ein Backup eurer Datenbanken und des Installationsverzeichnisses!

Schritt 1: Im WordPress-Backend die Site-URL umstellen auf https

WordPress Site-URL

War’s das?
Nein, natürlich nicht, denn Firefox meldet noch Fehler, weil nicht alle Elemente der Site mit SSL geschützt sind. Schaut ihr euch per CTRL+U den Quellcode an und sucht nach http://euresite.tld (für die Noobs: Natürlich durch eure URL ersetzen *g*) werdet ihr etliche Treffer finden, die noch auf unverschlüsselte Elemente zeigen. Was auch klar ist, denn wir haben die bestehenden Datenbankeinträge ja noch nicht angepackt.

Schritt 2: Datenbank-Einträge anpassen

Hier wird’s jetzt ein wenig knifflig, da ihr direkt die Datenbank-Einträge ändern müsst – daher nochmals der Hinweis: Backup erstellen!
Das funktioniert, genau wie das Ändern der Einträge an sich, am besten mit phpmyadmin. Wer testen will, importiert das Backup in eine lokale mySQL-Instanz und schiesst mit den SQL-Skripts erstmal auf die lokale Kopie seiner Datenbank.

Ich musste in den Tabellen wp_posts und wp_comments alle Einträge von http://dieotts.net auf https://dieotts.net ändern. Je nach dem, wie alt eure Installation ist und welche Plugins ihr verwendet, können bei euch durchaus weitere Tabellen zu editieren sein. Alles in allem bin ich aber mit drei SQL-Skripts ausgekommen:

UPDATE wp_posts SET guid = replace(guid, ‚http://euresite.tld‘,’https://euresite.tld‘);
UPDATE wp_posts SET post_content = replace(post_content, ‚http://euresite.tld‘, ‚https://euresite.tld‘);
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, ‚http://euresite.tld‘, ‚https://euresite.tld‘);
SQL-Skripts

Zeile 1 sorgt dafür, dass die URL des Posts an sich auf https umgestellt wird, Zeile 2 ersetzt in euren Posts die Links auf die eigene Site mit dem https-Prefix und Zeile 3 ändert die URL in den Kommentaren.

Schritt 3: .htaccess für automatische Umleitung konfigurieren

Prinzipiell ist eure WordPress-Installation jetzt SSL-ready – wer aber nicht weiß, dass ihr nun SSL-verschlüsselt eure Inhalte anbietet und nach wie vor die http-Version eurer Seite aufruft, wird das auch nie herausfinden. Also muss eine automatische her, kurz gesagt: http => https – wer auf http://euresite.tld kommt, wird automatisch auf die verschlüsselte Version unter https://euresite.tld umgeleitet.

Hierfür ist Zugriff auf die .htaccess-Datei im root eurer Installation nötig. Bevor ihr an der Datei rumspielt: Backup davon erstellen!

Letztlich genügen diese drei Zeilen in der .htaccess, um die Umleitung zu aktivieren:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Sollte „RewriteEngine On“ bereits in eurer .htaccess drinstehen, fügt einfach die Zeilen zwei und drei direkt darunter (über allem anderen, was da evtl. sonst noch steht!) ein.

Schritt 4: Kontrolle und Feintuning

Damit sind wir eigentlich durch. Ruft eure Site in verschiedenen Browsern auf und schaut euch die Adressleiste an: Dort sollte das für SSL typische Schloß-Symbol auftauchen und es sollten keine Warnung mehr ausgegeben werden. Fals doch oder falls z.B. in Beiträgen eingebettete Bilder nicht auftauchen: Erstmal den Browser-Cache leeren und Browser neu starten. Wenn das nix hilft, mittels CTRL+U den Quellcode anzeigen lassen und nach http:// suchen – bei Funden diese entsprechend eliminieren.

Ich hatte -und da kommen wir zum Feintuning- im Footer fix mein Impressum verlinkt, natürlich mit http statt https und schon meckerte zumindest Firefox bei jedem Aufruf, dass nicht alle Elemente SSL-gesichert seien usw. Ausserdem zeigt mein derzeitiges Template die Autoren-Box unter jedem Eintrag und auch hier fand sich ein Link zu http://dieotts.net – diesen musste ich dann in meinem Profil (unter Benutzer => Dein Profil => Website im Backend) entsprechend auf https ändern.

Höchstwahrscheinlich kostet euch das Lesen dieser kurzen Anleitung mehr Zeit als die eigentliche Umsetzung. :-)
Ich wünsche jedenfalls viel Spaß beim Nachbauen.

2 thoughts on “WordPress auf https umstellen”


  • By Thomas - Reply

    Danke für die tolle Anleitung.
    Wenn ich Deine Seite im Firefox öffne, so bekomme ich die Meldung, dass die Verbindung nicht sicher ist.
    Fehlercode: SEC_ERROR_UNKNOWN_ISSUER
    Selbe Thema habe ich auch bei meinen Seiten.
    Gibt’s dafür eine Lösung?
    lg, Thomas

  • By Joerg - Reply

    Moin.

    Welche Firefox-Version verwendest du denn?
    Und lass mich raten, alle anderen Browser funktionieren ohne Probleme?

Schreibe einen Kommentar

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