Sicherheit geht vor. Das gilt nicht nur für nächtliche Exkurse mit neuen Bekanntschaften aus der städtischen Strandbar. Denn auch bei dem Besuch einer WordPress Webseite hat das Thema Sicherheit elementare Bedeutung. Deshalb kümmern wir uns nun um eine adäquate Verschlüsselung einer WordPress Webseite via HTTPS und SSL-Zertifikat.
Verschlüsselung wird immer dann zum elementaren Sicherheitsfaktor, wenn sensible Kundendaten wie E-Mail Adressen, Kreditkarteninformationen oder weitere Informationen an einen Webserver übermittel werden – also nahezu in jeder E-Commerce Anwendung. Die SSL-Verschlüsselung hat für Online-Shops wie WooCommerce inzwischen essentielle Bedeutung. Sogar Google zieht die HTTPS-Verschlüsselung als einen nicht zu vernachlässigenden Ranking-Faktor heran.
In diesem Artikel klären wir ein paar Grundlagen über die Verschlüsselung von WordPress Webseiten mit SSL/HTTPS und zeigen, welche Anpassungen für WordPress nötig sind, damit die nachträgliche Umstellung auf HTTPS gelingt. Schließlich kann auch hier einiges schief gehen. Nicht nur auf technischer Ebene.
Was ist ein SSL-Zertifikat und welche Aufgabe hat es?
Jeder weiß gerne mit wem er es zu tun hat. Das gilt für das Business gleichermaßen wie für das Internet. Da ist es nur verständlich, wenn ein Browser gerne wissen würde, ob die besuchte Domain auch wirklich die ist, für die sie sich ausgibt.
Genau diesen Identifizierungsprozess übernimmt das SSL-Zertifikat, aber längst nicht nur für WordPress Webseiten. SSL-Zertifikate werden bei einer Zertifizierungsstelle „freigeschaltet“ und ermöglichen so zumindest die eindeutige Identifikation einer Domain. Allerdings heißt das nicht automatisch, dass eine mit SSL-Zertifikaten abgesicherte Webseite auch immer „gut“ oder sicher ist.
Bei dem Besuch einer mit SSL (Secure Socket Layer) gesicherten Webseite baut der Webbrowser eine verschlüsselte Verbindung mit dem Webserver der Webseite auf, sofern die Webseite für die Verbindung ein https-Protokoll verwendet.
Beim Klick auf die Adress-Zeile eines Browsers verändert sich in den meisten Fällen die URL-Darstellung und das verwendete Protokoll der Webseite wird sichtbar. Das Protokoll HTTPS (Hypertext Transfer Protocol Secure) verwendet das bekannte aber unsichere HTTP und nutzt für die Verschlüsselung der zu übermittelnden Informationen dann das SSL-Zertifikat (also HTTP-Secure).
Die Daten werden somit nicht mehr im Klartext zum Webserver gesendet, sondern in verschlüsselter Form. Regulär setzen die meisten Zertifikate auf eine 256bit Verschlüsselung.
Allerdings funktioniert das nur, wenn der genutzte Browser den Standard auch unterstützt. Verstaubte Nostalgie-Geräte aus den 80er Jahren, die zusammen mit alten Porsche-Oldtimern für die Nachfahren in der Garage eingelagert sind, taugen für die Verwendung aktueller SSL-Technologie also nur bedingt.
Im Detail läuft der Prozess von Authentifizierung und Verbindungsaufbau in nur wenigen Millisekunden ab:
- Ein Webbrowser versucht eine Verbindung zu einer mit SSL/TLS gesicherten Webseite herzustellen, wobei der Browser zunächst die Identität des Webservers abfordert (Identifizierungsprozess)
- Sobald dieser Request beim Webserver ankommt, sendet dieser sein SSL-Zertifikat an den Browser
- Das gesendete Zertifikat wird vom Browser auf seine Echtheit geprüft und ein entsprechender Respond an den Webserver zurückgesendet
- Der Webserver antwortet mit einer digital signierten Antwort, die eine SSL-Verbindung einleitet
- Die verschlüsselte SSL Verbindung zwischen Browser und Webserver wird aufgebaut
- Webserver und Browser können nun sicher Daten austauschen und verschlüsselt kommunizieren
Damit dieser auf dem RSA-Verschlüsselungsverfahren basierende Prozess problemlos ablaufen kann, werden drei wesentliche Komponenten benötigt:
- Das Kommunikationsprotokoll SSL, das als Bestandteil des ISO/OSI-Schichtenmodells für den (sicheren) Transport von Daten zwischen den Anwendungsschichten benötigt wird
- Ein rechtmäßiger Identitätsnachweis, der die Echtheit und Vertrauenswürdigkeit des Webservers bestätigt (SSL-Zertifikat)
- Eine Zertifizierungsstelle, die ihren Kopf dafür hinhält, dass das eben genannte SSL-Zertifikat ebenfalls echt und vertrauenswürdig ist (ansonsten könnte so ein Zertifikat von dubiosen Anbietern ja einfach gefälscht werden)
Eine Zertifizierungsstelle ist also nichts anderes als eine ebenso zertifizierte Institution, die derartige Zertifikate offiziell ausgeben darf. Wobei dürfen wohl eher eine Sache der Akzeptanz ist. Denn lange Zeit wurden von den gängigen Webbrowsern wie Firefox, Internet Explorer, Google Chrome, Opera oder Safari nur SSL-Zertifikate von wenigen streng ausgesuchten Zertifizierungsstellen akzeptiert.
Alle nicht zertifizierten SSL-Zertifikate wurden rigoros abgelehnt oder als nicht vertrauenswürdig eingestuft. Die wenigen offiziellen Stellen ließen sich ihre Zertifikate dann teuer bezahlen. Je nach Umfang der SSL-Zertifikate waren Jahresgebühren von 300-600 Euro keine Seltenheit. Wer sich dennoch dafür entschied, wurde mit dem vertrauenserweckenden Schloss-Symbol in der Adresszeile des Browsers über die abgesicherte Verbindung zur Webseite informiert. Wer hier an Verschwörung oder ein eiskaltes Ausnutzen der Marktmacht zu unterstellen erwägt, sollte noch einmal ganz genau überlegen, ob da so viel Falsches dran ist!
[av_font_icon icon=’ue824′ font=’entypo-fontello‘ style=“ caption=“ link=“ linktarget=“ size=’30‘ position=’center‘ color=’#00ba09′ admin_preview_bg=“ av_uid=’av-9nfju‘][/av_font_icon]Aus diesem Grund war der Anteil der mit SSL verschlüsselten Webseiten eine lange Zeit natürlich sehr niedrig. Vor allem Blogger, die auf WordPress zurückgreifen, können sich teure SSL-Zertifikate bei nicht ausreichender Monetarisierung der eigenen Webseite (z.B. durch einen Online Shop mit physischen oder digitalen Produkten) oftmals nicht leisten.
Fehlt ein gewinnbringendes Geschäftsmodell, fehlt Liquidität und damit auch die technische Sicherheit der Webseite. Diese Milchmädchen-Rechnung ist aber nur kurzfristig ausgelegt. Denn fehlende Sicherheit wirkt sich auch auf das Ranking in Suchmaschinen negativ aus und verschlechtert die User-Experience.
Konfrontiert uns der eigene Browser ständig mit Hinweisen wie „Freundchen, die Seite, die du hier besuchst, ist nicht sicher! Deine AmEx-Platinum Daten sind in ersthafter Gefahr!“ (so oder so ähnlich), löst das selbstverständlich kein gutes Gefühl in uns aus. In der Folge sinken die Conversions, die Verkäufe brechen ein, der Umsatz sinkt weiter ab. Eine Abwärtsspirale bricht herein, gegen die griechische Sparpakete noch harmlos erscheinen. Definitiv am falschen Ende gespart!
Kostenloses SSL-Zertifikat mit Let’s Encrypt und All-Inkl freischalten
Die gute Nachricht: Seit dem Jahr 2016 hat sich eine geniale Organisation gebildet, die von großen Tech-Konzernen wie Oracle, Facebook, Google oder auch Automaticc (die Jungs & Mädels hinter WordPress) unterstützt wird.
Let’s Encrypt hat sich zum Ziel gesetzt, das Internet durch die Bereitstellung kostenloser SSL-Zertifikate ein großes Stück sicherer zu machen. Davon profitieren nicht nur die Betreiber von eCommerce-Webseiten, sondern auch viele Blogger, Selbständige und Unternehmen, die bisher keine SSL-verschlüsselte Webseite betreiben konnten, weil schlichtweg das Cash fehlte.
Dabei lassen sich WordPress Seiten auch nachträglich auf HTTPS / SSL umstellen. So wird zumindest der zukünftige Datenverkehr zwischen Browser und Webserver abgesichert. Unser Hosting-Partner All-Inkl.com* bietet die kostenlosen SSL-Zertifikate von Let’s Encrypt ab dem Tarif Privat Plus an.
Die folgenden Steps erklären die grundlegende Integration der SSL-Zertifikate und zeigen, welche Schritte bei der Anpassung von WordPress nötig sind, damit das kryptographische Abenteuer nicht nach hinten los geht und wir am Ende ohne Schlüssel vor der eigenen Haustür stehen.
In der Theorie kann man ein SSL-Zertifikat sogar selber erstellen, um den erwünschten Schutz zu bewirken. Das Problem ist dabei jedoch die weltweite Akzeptanz der Browser, die selbst generierte oder nicht offiziell zertifizierte Zertifikate als Sicherheitsrisiko einstuft und z.T. den Besuch ganzer Webseiten blockiert.
Problemlösung? Bieten die Let’s Encrypt SSL-Zertifikat über All-Inkl bereits von Haus aus. Die systemseitige automatische Laufzeitverlängerung trägt ihren übrigen Teil zu der einfachen Anwendung bei. Das Zertifikat wird einfach unter Domains ➞ Bearbeiten ➞ SSL-Schutz bearbeiten ➞ Let’s Encrypt freigeschaltet.
WordPress-Webseite auf https mit SSL-Zertifikat umstellen
Die Einbindung des SSL-Zertifikats in den Webserver läuft bei All-Inkl vollautomatisch und nimmt erfahrungsgemäß nur wenige Minuten bis Stunden in Anspruch. Nach der Aktivierung geht es an die eigentliche Arbeit. Jetzt muss die gesamte Datenbank auf das neue https-Protokoll angepasst werden und für alle bestehenden verlinkten http-Inhalte eine permanente 301-Weiterleitung auf die neuen verschlüsselten Ressourcen eingerichtet werden.
Gerade bei älteren Projekten, die lange Zeit im Google Index stehen, ist dieser Schritt besonders wichtig, damit keine Einbußen in der Sichtbarkeit bei den Suchmaschinen zu erwarten sind. Duplicate Content oder fehlende Weiterleitungen sehen Google und Co. nämlich in etwa so gerne wie ein Chef seinen kranken Mitarbeiter beim Shopping in der Hamburger City.
Unmittelbar nach der Umstellung sind sämtliche Inhalt sowohl unter https als auch unverschlüsselt unter http zu erreichen. Um die umverschlüsselten Inhalte aus dem Verkehr zu ziehen, müssen wir sämtliche http-Einträge (also alle URLs und Links zu Fotos, Artikeln, Dateien etc.) in der WordPress Datenbank durch einen Eintrag mit https ersetzen.
Auch hier kommt wieder einmal das mächtige Tool Search & Replace zum Einsatz, das für uns die entsprechenden Datenbankeinträge einfach anpasst. Wichtig: Vor jeder Änderung sollte ein vollständiges Backup der betreffenden Datenbank gemacht werden!
Wie du das Tool richtig installierst und einsetzt, erfährst du hier.
Nach erfolgreichem Live-Run sollten alle http-Einträge der Datenbank vollständig auf https umgestellt sein. Als kleine Kontrolle werfen wir noch einen Blick auf die Seiteneinstellungen unter Einstellungen ➞ Allgemein, um die Zieladresse (https) der WordPress Installation zu überprüfen:
Sofern beim Live-Run mit Search & Replace alles gepasst hat, sollten Website-Adresse und WordPress-Adresse bereits auf https umgestellt sein. Falls nicht, wäre zur Not das Einspielen eines WordPress Datenbank Backups möglich.
Duplicate Content umgehen: 301-Weiterleitung mit .htaccess einrichten
Damit bestehende Verlinkungen auf deine http-Inhalte (z.B. von anderen Webseiten oder dem Google Index) nicht ins Leere führen oder auf die veralteten Ressourcen verweisen, richten wir noch eine 301-Weiterleitung für WordPress ein. Dazu gehst du wie folgt vor:
- Öffne via FTP-Filebrowser (z.B. FileZilla) dein WordPress Stammverzeichnis (root) und erstelle eine einfache Textdatei, die .htaccess heißt, sofern noch keine Datei existiert.
- Öffne die Datei via Rechtsklick und bearbeite sie. Dann fügst du folgenden Code am Anfang der Datei ein oder dort, wo die Rewrite Engine aktiviert wird. Je nach Serverkonfiguration können in der .htaccess bereits einige Einträge vorhanden sein.
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Bei erfolgreicher Anpassung sollte die .htaccess dann etwa so aussehen:
- Die .htaccess-Datei speichern und wieder in das Root-Verzeichnis hochladen.
Nun sollten alle Inhalte vollständig angepasst sein und alte Verlinkungen via 301-Weiterleitung auf die verschlüsselte Webseite unter https verweisen. Falls Probleme oder Fragen bei der Einrichtung und Anpassung deines SSL-Schutzes entstehen, kannst du dich gerne an unseren WordPress-Support wenden.