Dank Lets Encrypt kann man erschwinglich ein SSL Zertifikat bekommen. Für die Inhaber von eigenen Servern bzw. mit SSH Zugriff geht die Einrichtung wohl auch recht schnell und unkompliziert. Was mich bisher dann doch davon abgehalten hatte, war mein Shared Host. Ich habe ja nur begrenzte Zugriff.
SSL mit Lets Encrypt bei all-inkl.com
Da mir die Erstellung für den Shared Host recht lästig vorkam und die Zertifikate auch nur 90 Tage vorhalten, schrieb ich vor kurzem den Support von meinem Hoster all-inkl.com an, ob sie mir denn bei der Einrichtung eines Zertifkates behilflich sein könnten und ob mich das was kosten würde. Die Antwort des Supports kam gewohnt schnell. Und auch die Antwort freute mich. Ich müsse lediglich die (Sub-)Domain nennen und mich authentifizieren. Gesagt, getan und nach weiteren 10 Minuten hatte ich ein Lets Encrypt Zertifikat auf der Domain. Jetzt die Umstellung meiner Domain anfangen.
URL-Optionen anpassen
Von nun an ist es nicht mehr weit. Im Adminbereich unter
Einstellungen > Allgemein
kann nun noch die URLs umgestellt werden. Habt ihr eine Multisite-Installation, dann wird diese Einstellung in den Netzwerkeinstellungen unter Webseiten > Webseite bearbeiten
umgestellt.
Exkurs: Hauptdomain im WordPress MultiSite Netzwerk ändern
Wenn ihr, wie ich, die Hauptdomain eures Netzwerkes umstellen wollt, dann geht es nicht so einfach über die Adminoberfläche. Hierfür sind noch ein paar Anpassungen in der WordPress Konfiguration und in der Datenbank notwendig:
- Die Optionen
siteurl
undhome
in der Tabellewp_options
* - Bei einem zusätzlichen Domainwechsel sind die Änderungen in den Tabellen
wp_site
undwp-blogs
notwendig - Bei einem zusätzlichen Domainwechsel ist die Anpassung der Option
DOMAIN_CURRENT_SITE
in derwp-config.php
notwendig
*
wp_
ist ein Platzhalter für deinen Datenbankprefix.
URL Rewrite von http auf https
Nun wollen wir noch die normalen HTTP-Aufrufe auf HTTPS umleiten. Hierfür kann in der
.htaccess
folgender Codeblock genutzt werden. (URL anpassen nicht vergessen ;-) ):
# SSL for example.org in the multisite network
RewriteCond %{HTTP_HOST} ^example.org
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://org.org/$1 [R,L]
`
## SSL im WordPress Admin Bereich erzwingen
Neben den Anpassungen in der `.htaccess` kann man durch ein paar Zeilen in der `wp-config.php` die Verwendung von SSL im Adminbereich erzwingen:
`// just switch this domain in the multisite network
if ( $_SERVER["HTTP_HOST"] == "example.org" ) {
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
}
Alte Links im Content anpassen
Nachdem die Seite nun über HTTPS aufgerufen werden kann, sind dennoch Links auf den alten HTTP-Pfad in den Blogbeiträgen. Hier kann das Plugin Velvet Blues Update URLs Abhilfe schaffen. Es durchsucht den gesamten Content (Posts, Custom Post Types, Medien etc.) nach einer URL und ersetzt sie mit einer neuen URL. Genau das Richtige, um die Links von http auf https zu ändern.
Meine Seite verwendet ein Logo im Header, das über den Theme Customizer eingefügt werden kann. Solche Bilder ersetzt das Plugin leider nicht mit. Um hier den HTTPS-Link zu erhalten, konnte ich das Bild im Customizer aus dem Theme entfernt und erneut hinzugefügen.
Nun noch einen Blick in die Konsole des Browsers werfen um sicher zu stellen, ob alle HTTP-Verweise ersetzt wurden. Und fertig.
Edit: Web Fonts
Ein kleiner Hinweis, den ich noch von @bisonfute erhielt, war auch die Einbindung von WebFonts durchzusehen. Bei mir hatten sich noch ein paar mit eingeschmuggelt. Hier hilft es, um Stylesheet die Referenzierung von
http://path.to.webfont
auf //path.to.webfont
zu ändern.
Zusammenfassung
Eine WordPressinstallation auf SSL umzustellen ist dank einiger Hilfmittel recht schnell zu bewerkstelligen. Die Seiten-URLs können in den meisten Fällen direkt in der Oberfläche von WordPress geändert werden, für die Ersetzung im Content unterstützen Plugins. Dank Lets Encrypt kann man Zertifikate frei erhalten. Selbst mit einen kleinen Änderungen in einem Texteditor kann eine WordPress Multisite-Installation unkompliziert umgestellt werden.