Schlagwort-Archive: as1 asa2

Wordpress Blog auf https umstellen – Tipps und Tricks – Mit Lets Encrypt zu SSL

Aufmerksame Leser werden sicher schon, je nach Browser, das grüne Schloss in der Adressleiste bemerkt haben.

https BlogIch habe mein Blog nämlich auf https umgestellt. Das war gar nicht so einfach und ich gehöre wahrscheinlich zu den ersten Bloggern, die sich an das Thema heran gewagt haben. Tatsächlich gibt es einiges zu berücksichtigen. Man benötigt nicht nur ein Zertifikat, sondern muss auch alle eingebettete Inhalte https-tauglich machen. Andernfalls bekommen Besucher sogar eine Warnmeldung, dass die Seite nicht sichere Elemente enthält. Mit meiner kleinen Anleitung möchte ich Euch helfen, falls ihr ebenfalls eine Umstellung plant. Ich bin kein Web-Experte, habe es aber dann doch ganz gut hinbekommen, wie man sieht.

Was ist überhaupt https ?

Wer Onlinebanking anbietet oder einen Webshop betreibt, kommt an SSL-Verschlüsselung und https nicht vorbei. Das bekannte HTTP steht für “Hypertext Transfer Protocol”. So unterhalten sich Client und Webserver bei HTTP eben mit dem HTTP-Protokoll. Die Daten werden dabei nicht verschlüsselt, sondern im Klartext übertragen, vergleichbar, als wenn sich zwei Personen in einer Menschenmenge lautstark unterhalten. Jeder bekommt alles mit. Ihr würdet in so einer Menschenmenge sicher nicht Kontonummern, eMail-Adressen oder PINs austauschen. Flüstern wäre eine Lösung. Das funktioniert aber nicht im Netz. Hier verwendet man HTTPS “Hypertext Transfer Protocol Secure”. Die Daten werden damit verschlüsselt übertragen. Die Verschlüsselung findet mit einem sogenannten öffentlichen Schlüssel statt, den der Herausgeber der Webseite bereit stellt. Damit nicht einfach jeder so seinen eigenen Schlüssel erzeugen kann, muss dieser Schlüssel beglaubigt werden. Dazu wird ein Zertifikat benötigt, sozusagen als Beweis, dass dieser Schlüssel auch wirklich vom Herausgeber stammt.

Warum brauche ich https für mein Blog ?

Das fängt schon beim Einloggen in Eure Adminoberfläche an. Auch hier kann bei unverschlüsselter Übertragung jeder mitlesen. Zudem kann je nach Standort des Rechners jemand Malware oder Schadcode in den Datenstrom einfügen. So können sich Eure Leser nie sicher sein, ob sie auch wirklich die Daten und Informationen von Euch bekommen, die sie beim Besuch Eurer Seite erwarten.

Nun kommt bald auch noch Google ins Spiel. Der Suchmaschinenbetreiber wird in Zukunft verschlüsselte Inhalte im Ranking bei den Ergebnissen bevorzugt behandeln. Ich vermute, dass macht Google schon jetzt. Nutzt man eine unverschlüsselte Webseite, kann man so viele SEO-Tools einsetzen wir man möchte, da Google den nicht verschlüsselten Inhalt in den Suchergebnissen nach hinten schiebt.

Da ich gerne auch neue Dinge ausprobiere, war das für mich Grund genug, das Thema anzugehen.

Woher bekomme ich das Zertifikat ?

Zertifikate werden vielerorts angeboten. Die Preise sind unterschiedlich hoch, je nach Anbieter und Sicherheitsstufe. Ein Webshop wird vermutlich seine persönliche Identität über ein Zertifikat regeln. Das Antragsverfahren ist kompliziert und teuer. In meinem Fall, wo es “nur” um einen Blog geht, entschied ich mich für ein Zertifikat von Let’s Encrypt. Hierbei handelt es sich um eine gemeinnützige Zertifizierungsstelle, die das Web sicherer gestalten möchte. Beteiligt sind daran beispielsweise Mozilla, Chrome, Facebook oder Cisco Systems, also “namhafte” Firmen. Dieses Zertifikat ist sogar kostenlos. Im Vergleich zu anderen Zertifikaten ist es aber nur 90 Tage gültig und muss regelmäßig erneuert werden. Zudem besitzt es noch einige, kleine Einschränkungen. Unter Windows XP wird meine Seite aktuell noch als “Unsicher” deklariert. Das soll behoben werden, andererseits ist XP ohnehin schon veraltet und insgesamt unsicher, da es keine Patche mehr dafür gibt. Daneben validiert Let’s Encrypt lediglich meine Domäne, aber nicht meine Person.

Die Implementierung ist nicht einfach. Ich habe das Glück, dass mein Webhoster netcup dieses Zertifikat in einem neuen Hosting Paket anbietet. So kam ich erst auf die Idee, meine Seite auf https umzustellen. Bei netcup braucht man einfach nur im Kundenportal (CCP) das Zertifikat unter Domains->Domain auswählen->Kostenloses SSL zu aktivieren und verbindet es dann im Webhostingpanel mit der eigenen Domäne und aktiviert die SSL-Verschlüsselung.

https Blog lets encryptDie Erneuerung führt netcup automatisiert durch. Ich muss mich also um nichts mehr kümmern.

Wie gehe ich vor ? Was ist zu beachten ?

Sicherung der Datenbank:

Als erstes sollte man alle Daten und die Datenbank sichern. Das sollte man generell tun, wenn man etwas gravierendes an seinem Blog verändert. Es gibt verschiedene Tools zur Datensicherung der Datenbank. Einige, wie der “Wordpress Duplicator”, hatten Probleme mit den Einstellungen meines Webhosters. Da diese nicht nur für mich, sondern auch für andere User gelten, war netcup auch nicht bereit, diese zu ändern. So kam ich an das Plugin “Migrate DB”. Das funktioniert perfekt. Ruft man „Migrate DB“ auf, kann man ein Profil erstellen und sofort mit der Speicherung der Datenbank beginnen.

migrate DB WordpressWer möchte, kann sogar gleich schon Änderungen vornehmen und mit der integrierten Replace&Insert-Funktion Einträge ersetzen. Davon rate ich aber ab.

migrate DB Wordpress

Die kostenlose Version reicht für unsere Zwecke aus.

Die Rücksicherung muss man dann im Fehlerfall allerdings mit MyPHPAdmin durchführen.

Dazu löscht man am besten seine kaputte Datenbank und legt eine neue mit demselben Namen an. Nun importiert man die Datenbank mit MyPHPAdmin.

MyphpAdmin WordpressUnter “Durchsuchen” gibt man den Pfad der mit “Migrate DB“ gesicherten Datenbank an und bestätigt mit OK.

MyphpAdmin WordpressKommt die Meldung “Der Import wurde erfolgreich abgeschlossen”, hat alles funktioniert.

MyphpAdmin WordpressSicherung von Dateien:

Die Dateien lassen sich mit einem ftp-Tool wie „winscp“ sehr gut auf den lokalen Rechner kopieren. Dabei muss man den Ordner “Wordpress” auswählen. Darin sind alle für Wordpress relevanten Dateien enthalten.

winscp wordpressWordpress Blog auf https umstellen:

Zunächst einmal muss man in den Einstellungen von Wordpress den Link des Blogs von http auf https ändern. Das ist aber leider noch nicht alles.

https Blog lets encryptEs gibt zahlreiche Links innerhalb von Wordpress auf Bilder und Beiträge, die noch mit http beginnen und damit nicht geändert werden. Hier bietet sich das Tool “Better Search Replace” an.

better serach replace wordpressDas macht nichts anderes als die Suchen/Ersetzen-Funktion in einer Textverarbeitung. Hier eben nur in einer Datenbank. Man nun die Tabellen aus, in denen man etwas ändern möchte.

Das sind i.d.R. die Tabellen “wp_posts”

better serach replace wordpressund “wp_comments”.

better serach replace wordpressIn “wp_posts” befinden sich alle Eure Artikel und in “wp_comments” alle Kommentare. Die Metadaten befinden sich unter “wp_postmeta” und “wp_commentmeta”.  Auch hier können sich Links befinden.

Wer das Plugin “Nextgen-Gallery” benutzt, muss auch hier die Links zu den Bildern anpassen.

nextgenEs ist natürlich auch möglich, einfach alles auszuwählen, damit man nichts vergisst.

Dennoch kann es sein, dass einige Links nicht mehr funktionieren, wenn diese kein https unterstützen, wie es oft bei Kommentaren der Fall ist. Man kann mit der Option “Run as dry run” das ganze austesten, ohne das Änderungen durchgeführt werden. Danach nimmt man den Haken raus und startet das ganze nochmal.

Umleitung für https einstellen:

Wir sind immer noch nicht fertig. Sucht jemand bei Google nach Eure Seite, findet er noch den http-Content. Den gibt es zwar und die Seite wird als http angezeigt, aber Google indiziert das als doppelten Content und wertet gegebenfalls das Ranking ab. Dazu muss man im “Wordpress”- Ordner die versteckte Datei “.htaccess” öffnen und trägt eine Umleitung für http nach https ein. Wer hier mit “Winscp” arbeitet, muss die Anzeige der versteckten Dateien aktivieren:

winscp wordpress htaccess versteckt

Dann bekommt die Datei “.htaccess” angezeigt:

winscp wordpress htaccess versteckt

Das sieht dann so aus:

  • # BEGIN WordPress
  • <IfModule mod_rewrite.c>
  • RewriteEngine On
  • RewriteCond %{SERVER_PORT} !^443$
  • RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
  • RewriteBase /Wordpress/
  • RewriteRule ^index\.php$ – [L]
  • RewriteCond %{REQUEST_FILENAME} !-f
  • RewriteCond %{REQUEST_FILENAME} !-d
  • RewriteRule . /Wordpress/index.php [L]
  • </IfModule>
  • # END WordPress

Das fett gedruckte ist die Umleitung, die zu ergänzen ist. DAS funktionierte bei mir aber nur, nachdem ich in Wordpress den Installationsordner von www.allucansurf.de/Wordpress nach www.allucansurf.de geändert hatte. Das ist aber ohnehin sinnvoll, da es optisch besser aussieht, wenn man die Seite im Browser ohne den Installationsordner sieht. Innerhalb der Filestruktur verändert sich dadurch nichts. Das sollte man also noch ändern, bevor man die Umleitung einrichtet, sofern es nicht schon so eingestellt ist. Wie das funktioniert, könnt Ihr hier nachlesen.

Probleme, Probleme, Probleme ?!

Nach dem Einspielen des Zertifikats in meine Umgebung, zeigte der Browser erst gemischte Inhalte an. Kein schönes Bild. Die Hauptseite und auch die verlinkten Bilder wurden zwar per https dargestellt, jedoch waren noch einige Links eingebettet, die auf http-Inhalte auf externen Seiten zeigten. Hieran sind oft Plugins beteiligt, die Werbung schalten. Deswegen trauen sich auch viele große Webseiten nicht an eine Umstellung heran. Ich habe auch ein wenig Amazon-Werbung und Google AdSense implementiert und auch schnell die Ursache gefunden:

Das erste Plugin war “Amazon Simple Admin 1”. Dieses kostenfreie Plugin, stellt eine komfortable Möglichkeit dar, grafisch hübsche Amazon Links einzubetten, indem man nur die ASIN eingibt. Leider waren die eingebetteten Bilder unverschlüsselt verlinkt. Da ich auf dieses PlugIn keinesfalls verzichten wollte, stöberte ich im Netz nach einer Lösung. Dort fand ich die Version 2 des Plugins mit wesentlich mehr Funktionsumfang, unter anderem auch der Unterstützung von https, allerdings dann nicht mehr kostenfrei. Nachdem ich eine Lizenz für umgerechnet circa 70 EUR erworben hatte, konnte ich die Version 2 installieren. Leider gab es damit aber immer noch Probleme. Da der Entwickler, Timo Reith, schon bei der kostenlosen Version ASA 1 hervorragenden Support leistete, unterstützte er bei der Lösungsfindung. Tatsächlich waren noch einige Anpassungen am Plugin notwendig, die er innerhalb eines Tages ! durchführte. Nach Installation des Updates funktionierte die https-Unterstützung einwandfrei.

Probleme gelöst ? Mitnichten.

Das kleine Plugin “Quick Ad Sense” bettet Google Werbecode ein und dieser war schon veraltet und beinhaltete noch unverschlüsselte Links. Dazu muss man im Google Ad Sense einen neuen Code mit https generieren: Das alleine reichte aber nicht aus. Erst nachdem ich den Nachfolger installierte, dass Plugin “WP QUADS”, waren auch diese Probleme behoben.

Damit war ich dann tatsächlich durch und meine Seiten zeigen nun unter https das lang ersehnte grüne Browsersymbol:

https Blog lets encryptNun sollte man die eigene Homepage noch bei den Webmaster-Tools von Google prüfen und gegebenfalls eintragen und auch eine neue Sitemap generieren und einreichen. Dies ist notwendig, damit Google die Inhalte auch findet. Das Plugin “Google XML Sitemap” übernimmt das vollautomatisch und informiert die Suchmaschinenabieter Google und Bing. Natürlich kann man auch Online eine Sitemap generieren, downloaden und diese in den Webmaster-Tools einreichen. Schon nach kurzer Zeit wurde bei der Suche nach Inhalten auf meiner Seite die Links mit https angezeigt.

Der Aufwand war dann nicht wirklich groß und kostete mich ein ohnehin verregnetes Wochenende. Die Performance hat nicht spürbar gelitten und ich hoffe, mit meinem kleinen Beitrag etwas Motivation gegeben zu haben, die eigene Seite auf https umzustellen. Meine Anleitung ist natürlich ohne Garantie und sollte an die persönlichen Gegebenheiten angepasst werden. Bei mir hat es so jedenfalls reibungslos funktioniert.