≡ Menu

[:de]WordPress Multisite mit Domain-Mapping auf Plesk Server mit Letsencrypt SSL versorgen[:en]WordPress Multisite with Domain-Mapping on Plesk Server: make everything https[:]

[:de]Die Aufgabenstellung: Auf einer WP Multisite Installation mit Domain-Mapping (d.h. alle Domains haben eigene TLD), die auf einem Plesk 12.5 Server läuft soll für jede Site ein SSL von Letsencrypt installiert werden.

Auf den ersten Blick einfach: SAN Zertifikat holen, das alle Domains beinhaltet und auf der Hauptseite installieren. Und nicht vergessen, das SAN Zertifikat muss spätestens alle 3 Monate wieder manuell erneuert werden. Das alles geht im Terminal mit den Command Line Tools, muss man sich aber erst anlesen und ist mir zu kompliziert gewesen… auch die Aussicht auf Wiederholung im 3-Monats Rhythmus passt mir nicht.

Einfacher gehts mit einem kleinen Umweg: Für Plesk (ab 12.5) gibt es seit kurzem die tolle Letsencrypt-Extension, die allerdings noch keine SAN Zertifikate holen und installieren kann. Letsencrypt unterstützt darüber hinaus auch keine Alias-Domains.
Daher muss man auf dem Plesk Server alle Domains für die Multisite als eigene Domain einrichten und dabei darauf achten, dass man als Speicherort das bestehende Abo der WP-Hauptseite einträgt und dass auch der Dokumentenstamm gleich lautet wie für die Hauptseite (normalerweise /httpdocs).
Plesk meckert beim Anlegen darüber, dass die Logfiles nicht korrekt erstellt werden können – klar, die liegen ja alle im gleichen Verzeichnis, da gibts also Kollisionen.
Abgesehen davon ist die Domain aber funktionsfähig und zeigt auch auf unsere WP Multisite Installation.

Jetzt kann man für jede Domain mit der Letsencrypt-Extension ein  (kostenloses) SSL Zertifikat holen, das auch gleich automatisch installiert wird. Die Extension sorgt auch dafür, dass das Zertifikat jeden Monat automatisch erneuert wird. Kein manueller Eingriff mehr nötig.

Im WP muss man schliesslich noch die nötigen Anpassungen (Site-url und Site-home) so vornehmen, dass die Seiten über https:// laufen und auch htaccess sollte so angepasst werden, dass der Seitenzugriff automatisch auf https:// umgeleitet wird. In Google findet man die passenden Hinweise dafür.

Zu guter Letzt noch ein bisschen Speed-Tuning mit Plesk-Mitteln: im Seitenhosting kann mit ein paar Klicks nginx als Reverse Proxy aktiviert werden, damit werden Bilder, Skripte und Styles viel schneller geliefert. Die Aktivierung von CloudFlare für jede Domain (auch nur ein Klick im Plesk) reduziert die Ladezeiten weiter und schützt darüberhinaus die Seiten vor DDoS-Angriffen. Das Ergebnis: bei einer Multisite mit 10 verschiedenen Domains liegen die Seiten-Ladezeiten (GTmetrix) jetzt bei 1 – 2 Sekunden und die Performance scores so um die 90, das auf einem „ganz normalen“ VPS, d.h. ohne Hardware-Overkill…

Das Tuning geht weiter, da liegt sicher noch mehr drin…[:en]The project: Every site in a WP multisite installation using domain-mapping (i.e. each domain has its own TLD), which is running on a Plesk 12.5 server should run in https using a Letsencrypt SSL cert.

At first glance an easy job: Get a SAN certificate, that covers all domains and install it in the main site. Then dont forget to renew the SAN cert every three months – a manual job, normally performed using terminal and CLI tools; means: learn Letsencrypt commands and was putting me off… also the prospect of having to repeat the same every three months.

There is an easier solution with a little detour: For Plesk (as of version 12.5) there is a new and very handy Letsencrypt-Extension, which at this time cannot yet get and install SAN certificates. In addition to that Letsencrypt does not support domain aliases.
Therefore you have to install each Multisite domain in Plesk as a fully active domain and make sure that as „Location of the websites files“ the subscription of the WP main site is selected. At the same time the document root should also point to the root for the WP main site (normally /httpdocs).
Plesk will nag about logfiles that it cannot create – there are collisions since it tries to create them all in the same folder.
Other than that the domain will work fine and it points to our WP multisite installation as intended.

Now you can use the Letsencrypt-Extension to get a  (free of charge) SSL certificate for each domain; the Extension will also install the cert so that our domain can be reached via https now. Nice: the extension will also automagically renew the certificate each month. No manual repeat process required.

Finally you have to adjust some settings in WP for https access (Site-url and Site-home) and also htaccess should be setup so that every client access to the page will be re-directed (301) to https. A quick Google search will bring that up. Copy – paste – done.

To wrap the whole thing up, we are now applying a little speed-tuning using Plesk on-board tools: in the domain hosting a few clicks will activate nginx as reverse proxy, so that images, scripts and styles are delivered muuuch faster. Another click for activation of CloudFlare’s CDN for each domain further reduces loading times and will also protect your site against DDoS and more malicious attempts.
The result: for a WP multisite with 10 different domains the page load time in GTmetrix is now around 1 – 2 seconds and performance scores around 90 for a „quite regular“ VPS, i.e. without any hardware overkill…

Further tweaking ahead…[:]

{ 0 comments… add one }

Leave a Comment