Kostenfreies Let's Encrypt Zertifikat mit Plesk einrichten
Mit nur wenigen Klicks in der Plesk Admin Konsole, kann man eine Domain mit SSL Zertifikat von Let’s Encrypt absichern. Plesk führt alle erforderlichen Schritte automatisch im Hintergrund aus, inklusive der Erstellung eines Let’s Encrypt Accounts und der Domain Validierung. Sofern nicht bereits geschehen, wird gleichzeitig auch die Plesk Admin Konsole mit abgesichert.
Ich zeige hier die Einrichtung eines Zertifikats für eine einzelne Domain (www und nicht-www), sowie eines Wildcard Zertifikats. Die Verfahren sind ähnlich, unterscheiden sich jedoch hinsichtlich der Validierung. Das ist der Schritt, in dem man die Inhaberschaft – oder zumindest die Kontrolle – einer Domain, durch erfüllen einer vom Zertifikateanbieter gestellten “Aufgabe”, beweist. Im Gegensatz zur Validierung für einzelne Domains, für die es ausreicht eine HTML Datei bereitzustellen, fordert Let’s Encrypt einen DNS Eintrag für Wildcard Zertifikate.
Die Screenshots in dieser Anleitung beziehen sich auf Plesk Obsidian (Version 18.0.x).
Let’s Encrypt Zertifikat für einzelne Domains
Wähle im Domain Dashboard “SSL/TLS Certificates” aus.
Standardmäßig werden Zertifikate von Sectigo (kostenpflichtig) und Let’s Encrypt angeboten. Let’s Encrypt findet man, etwas unscheinbar, am unteren Ende unter “More options”. Das liegt sicher daran, dass Plesk eine Provision für die Vermittlung der Sectigo Zertifikate erhält und diese deshalb (verständlicherweise) in den Mittelpunkt rückt.
Wie oben erwähnt, führt Plesk alle erforderlichen Schritte automatisch aus. So auch die Erstellung eines Let’s Encrypt Accounts. Hierfür muss man in diesem Schritt seine E-Mail Adresse angeben.
In diesem Schritt legt man außerdem fest, welche Domains das Zertifikat enthalten soll: domain.de
, www.domain.de
und/oder *.domain.de
. Das Wildcard Zertifikat wird deaktiviert.
Mit dem Bestätigen, durch Klick auf “Get it free”, geht es los und Plesk registriert das Zertifikat im Hintergrund.
Let’s Encrypt Wildcard Zertifikat
Ein Wildcard Zertifikat, in diesem Fall *.ssl-pilot.de
kann für alle Subdomains einer Domain verwendet werden, z.B. mail.ssl-pilot.de
, tools.ssl-pilot.de
, www.ssl-pilot.de
, xy.ssl-pilot.de
, usw.
Der Vorteil liegt damit auf der Hand: Man muss nur ein Zertifikat verwalten und kann es fast beliebig einsetzen. Das spart Zeit und Kosten (besonders im Fall von kostenpflichtigen Anbietern).
Die Registrierung eines Wildcard Zertifikates ist ähnlich, unterscheidet sich jedoch hinsichtlich der Validierung, der sogenannten “Challenge” des Zertifikate Anbieters Let’s Encrypt. Um die Domaininhaberschaft zu beweisen, muss man in diesem Fall einen DNS Record anfügen. Verwaltet Plesk auch die DNS Einträge, laufen ebenfalls alle Schritte automatisch ab. Dazu müsste man aber den Nameserver Eintrag (nicht A-Record) beim Domain Registrar entsprechend umgebogen haben, so dass der Server nicht nur die Website-Inhalte bereitstellt, sondern auch als DNS fungiert. Davon sollte man jedoch absehen, außer man weiß genau was man tut. In meinem Fall ist die Domain über United Domains registriert und ich verwende deren Standard-Nameserver (u.A. wegen Ausfallsicherheit). Dementsprechend muss ich bei diesem Schritt manuell tätig werden und einen Record hinterlegen. Aber der Reihe nach.
Zunächst wählt man “Secure the wildcard domain” aus und gibt eine E-Mail Adresse für den Let’s Encrypt Account an (beachte die Hinweise zum Account am Ende dieses Artikels).
Im nächsten Schritt wird der erforderliche DNS Eintrag angezeigt. Dieser muss gesetzt und abrufbar sein, ehe man mit der Registrierung weiter machen kann.
Dazu muss man beim Domain Registrar einen TXT Eintrag in den DNS Einstellungen der Domain hinterlegen. Hier sieht man es am Beispiel von United Domains. Man findet es dort über Domain-Portfolio -> DNS bei der entsprechenden Domain auswählen -> DNS-Einträge -> TXT. Bei anderen Anbietern sollte das ähnlich sein.
Änderungen der DNS Einstellungen sind in der Regel nach wenigen Minuten wirksam. Dennoch sollte man es überprüfen und sicherstellen, dass die Aktualisierung erfolgt ist. Das geht sehr einfach mit MxToolBox oder per Command, unter Windows mit nslookup
.
C:\Users\maddin>nslookup -type=TXT _acme-challenge.ssl-pilot.de
Server: dc.local
Address: 192.168.5.1
Nicht autorisierende Antwort:
_acme-challenge.ssl-pilot.de text =
"QyABOoxcIliOrOPf7soKVRiCwHxpwGiB-lCzK38dCdE"
Hier noch die Abfrage über MxToolBox.
Nachdem der TXT Eintrag also wirksam ist, kann die Registrierung abgeschlossen werden. Dazu in Plesk auf Continue klicken und alles weitere läuft im Hintergrund ab. Fertig.
Überprüfung im Browser
Nach der Registrierung, sieht man nachfolgende Übersicht. Die Webseite ist nun mit SSL Zertifikat von Let’s Encrypt abgesichert.
Jetzt noch im Browser aufrufen und auch dort überprüfen. Fertig.
Hinweis zum Let’s Encrypt Account
Die für den Let’s Encrypt Account angegebene E-Mail Adresse muss nicht eindeutig sein, sprich es kann für mehrere Accounts verwendet werden. Man bekommt von dem Account selbst nicht viel mit, denn es wird von Plesk im Hintergrund verwaltet. Man könnte sich damit auch gar nicht bei Let’s Encrypt anmelden. Es dient im Wesentlichen der Information bei Änderungen der Let’s Encrypt Bedingungen oder zur Benachrichtigung bei ablaufenden Zertifikaten.
Wer sich für die Details interessiert, wirft am besten einen Blick in das Verzeichnis /usr/local/psa/var/modules/letsencrypt
, am besten per SSH (z.B. mit Putty) oder sFtp. Dort finden sich alle Zertifikate (inkl. Private Keys) sowie Infos zu den im Hintergrund angelegten Let’s Encrypt Accounts.
Die Ordnerstruktur von /usr/local/psa/var/modules/letsencrypt/
ist:
etc/archive/_plesk_domain
-> Zertifikate für die Plesk Admin Konsoleetc/archive/domainxy.de
-> Zertifikate der Domain “domainxy.de”orders/
-> enthält json Files mit Info zu den einzelnen Zertifikat Bestellungenregistrations/
-> enthält json Files mit Infos zu den erstellen Let’s Encrypt Accounts
Hier ein Blick in das Zertifikate Verzeichnis von ssl-pilot.de
root@xyz:/usr/local/psa/var/modules/letsencrypt/etc/archive/ssl-pilot.de# ls -all
drwx------ 2 psaadm psaadm 4096 Nov 4 15:00 .
drwx------ 5 psaadm psaadm 4096 Oct 31 06:43 ..
-rw-r--r-- 1 psaadm psaadm 1780 Oct 31 06:43 cert1.pem
-rw-r--r-- 1 psaadm psaadm 1800 Oct 31 06:43 chain1.pem
-rw-r--r-- 1 psaadm psaadm 3581 Oct 31 06:43 fullchain1.pem
-rw-r--r-- 1 psaadm psaadm 1704 Oct 31 06:43 privkey1.pem
So sieht das /orders
Verzeichnis aus:
root@xyz:/usr/local/psa/var/modules/letsencrypt/orders# ls -all
drwx------ 2 psaadm psaadm 4096 Nov 4 15:02 .
drwxr-xr-x 5 psaadm psaadm 4096 Oct 31 06:43 ..
-rw------- 1 psaadm psaadm 729 Oct 16 14:49 379fcd660ff7616e7af32b0c62f562a9d9809f5e.json
-rw------- 1 psaadm psaadm 467 Oct 15 15:01 38edb0c2a2059101c833a48e7095e5be605f0e37.json
-rw------- 1 psaadm psaadm 839 Oct 31 06:43 c3bb5942433d80ffdfb0106eb78b2410a4a75300.json
Und so /registrations
:
root@xyz:/usr/local/psa/var/modules/letsencrypt/registrations# ls -all
drwx------ 2 psaadm psaadm 4096 Oct 16 14:49 .
drwxr-xr-x 5 psaadm psaadm 4096 Oct 31 06:43 ..
-rw------- 1 psaadm psaadm 1967 Oct 15 15:01 8702dcf61b58a55f66d44c362fa90c027cbeeb32.json
-rw------- 1 psaadm psaadm 1945 Oct 16 14:49 b09410a4af60bd62de38d1cb555016eea3c2b11b.json