Die kostenlosen Let’s Encrypt SSL Zertifikate sind eine feine Geschichte. Ganz simpel lässt sich die Erweiterung von Let’s Encrypt in Plesk installieren und mit wenigen Klicks hat man ein funktionierendes zertifiziertes SSL Zertifikat. Leider gibt es jedoch noch einen Haken. Dieses Zertifikat wird durch die Erweiterung lediglich automatisch für die normale Domain bereit gestellt, nicht jedoch für den installierten Mailserver. Jedoch habe ich auf Github ein Script gefunden, welches das SSL-Zertifikat auch auf dem Mailserver bereit stellt. Da die Let’s Encrypt Zertifikate nur 3 Monate Gültigkeit haben, muss dieses Script regelmäßig ausgeführt werden (Cronjob), damit die Zertifikaterneuerung auch der Mailserver mitbekommt.
Hier die neue vereinfachte Anleitung (zuletzt getestet am 05.02.2018):
- In Plesk als Admin anmelden
- Plesk: Tools & Einstellungen –> Sicherheit –> SSL/TLS Zertifikate
- Bei „Zertifikat zum Schutz von E-Mails“ das Zertifikat einer Domain auswählen, welches vorher schon mit Let’s Encrypt erstellt wurde (siehe Beitragsbild –> anklicken)
- Bei Einrichtung eines Mail-Programms die Domain angeben, welche unter Punkt 3 eingestellt wurde, ohne vorangestelltes „imap“ oder „pop3“, also einfach nur „meinedomain.de“ bei Posteingangsserver und Postausgangsserver eingeben.
Eine ältere Anleitung (veraltet, nicht getestet mit neuerer PLESK-Versionen nach dem 29.09.2016):
- Backup / Snapshot vom Server erstellen
- Plesk: Tools & Einstellungen -> Servereinstellungen -> Vollständiger Hostname
Diesen Hostnamen auf die Domain abändern, die auch für den Mailserver genutzt werden soll (z. B. it-fvb.de) - Sicherstellen das Erweiterung Let’s Encrypt installiert ist und für den eingetragenen Hostname (Domain) ein Let’s Encrypt Zertifikat in Plesk bereits erstellt wurde und funktioniert
- Skript kopieren von: https://github.com/Powie/plesk_mailcert
Dieses Script z. B. via Putty und vim im neuen Verzeichnis /opt/script/ mit dem Namen plesk_mailcert speichern. Verzeichnis script mit mkdir in /opt/ anlegen falls noch nicht existiert. - Skript manuell ausführen und testen ob Hostname vom Skript richtig erkannt wurde:
bash /opt/script/plesk_mailcert - Wenn die Ausgaben erfolgreich waren, dann in Plesk einen wöchentlichen Task dazu anlegen:
- Tools & Einstellungen -> Geplante Aufgaben-> Aufgabe hinzufügen
- Aufgabentyp: Befehl ausführen
- Befehl: bash /opt/script/plesk_mailcert
- Ausführen: Wöchentlich – beliebige Zeit festlegen
- Beschreibung: Kurze Beschreibung zu der Aufgabe eingeben
- Benachrichtigungen nach Wunsch einstellen
- Übernehmen klicken
- Skript in Geplante Aufgaben testen: „Jetzt ausführen“ klicken und Ausgabe prüfen (ggf. können im Plesk-Panel die Zeilenumbrüche von den Scriptausgaben komische Zeichen verursachen, stellt aber keine Funktionsstörung dar)
- Im Mail-Programm für Posteingang- und Postausgangserver nur die Domain ohne imap. oder smtp. benutzen, also so wie sie in der Let’s Encrypt Erweiterung angelegt wurde.
Hallo,
das funktioniert aber nur, wenn man keinen Server mit mehreren Hostings und unterschiedlichen Domains betreibt.
Ich kann lediglich EINE Domain auswählen, über die das Zertifikat für den Mailversand eingebunden wird.
Freilich kann ich natürlich für jede Domain Lets Encrypt einrichten, aber eben nur für die Webseitenanfragen…oder habe ich da was übersehen?
Gruß
Pete
Hallo Pete, deine Denkweise ist nicht ganz richtig. Du musst ja deinem Server einen Hostname zuweisen. Für diesen Hostname erstellst du eine Domain oder Subdomain und weist dieser eine Let’s Encrypt Zertifikat zu. Dann kannst du wie in der Anleitung beschrieben das Zertifikat auch für den Mailserver setzen. Und jetzt kommt die eigentliche Antwort auf deine Frage: Dem Server ist es völlig egal, ob du beim Posteingangs- bzw. Postausgangsserver die Kunden-Domain oder die Hostname-Domain eingibst. Allerdings ist hier der Haken wie du bereits richtig erkannt hast: Du kannst dem Mailserver nur ein Zertifikat zuweisen, somit nimmst du natürlich das Zertifikat vom Hostname des Servers. Somit kann man jede Mail-Adresse zu jeder Domain die auf deinem Server liegt über die Hostname-Domain sicher verbinden. Also als Beispiel: Dein Server hat die zugewiesen Hostname-Domain mit SSL-Zertifikat für den Mailserver „it-fvb.de“ und dein Kunde hat die Mail-Adresse „blub@x-y-domain.de“. Dann gibt dieser Kunde beim Posteingangs-und Postausgangsserver „it-fvb.de“ ein und bei Benutzername seine Mail, also „blub@x-y-domain.de“ und sein dazugehöriges Passwort.
Gruß
Falk
Hallo,
eine kurze Verständnisfrage:
Ich habe leider noch Plesk 12.5. Dieses Skript schützt doch lediglich den Mailserver, nicht aber Webmail, oder? Also wirkt sich der Schutz der Mails doch auch auf die anderen Domains mit aus, richtig?
Hab ich jetzt also als Hostname domain1.tld angegeben, wirkt sich das dann auch auf domain2.tld, domain3.tld aus? Unter Reverse DNS steht ja bei mir auch mail.domain.tld, die gleiche Domain (ohne mail) wie ich sie beim Hostnamen verwende.
Freundliche Grüße
Sven
Hallo Sven,
grundsätzlich „schützt“ das Script nicht den Mailserver, sondern damit wird für Mail-Programme wie z. B. Outlook oder Thunderbird eine Verschlüsselte Verbindung zu POP3 oder IMAP bereit gestellt. Webmail wird damit nicht geschützt. Dies kann man seit einiger Zeit direkt über das Let’s Encrypt Modul in Plesk einstellen, wenn man die webmail.meine-domain.de auch mit einem SSL-Zertifikat versehen möchte. Dieses Script legt lediglich hinter die Hauptdomain, also welche auch als Host eingetragen ist das gleiche Zertifikat, also dieses, welches über Let’s Encrypt für meine-domain.de erstellt wurde. Deshalb muss man dann auch bei Posteingangs- bzw. Postausgangsserver immer meine-domain.de eingeben, auch wenn als Mail-Adresse eine andere Domain genutzt wird.
Als Beispiel: Es gibt die Mail-Adresse info@hans-mustermann.de, der Host-Name des Servers lautet blub.de und für blub.de wurde auch ein SSL-Zertifikat über Let’s Encrypt erstellt und dieses Script angewendet (besser jedoch meine neue Anleitung verwenden), dann muss man bei der Einrichtung im Mail-Programm als Benutzername „info@hans-mustermann.de“ eingeben, bei Posteingangs- bzw. Postausgangsserver dann jedoch „blub.de“.
Ich hoffe ich habe es verständlich erklären können.
Hallo Falk,
danke für deine Antwort. :)
Ich hab glaube noch einen Denkfehler. Wenn ich für meine-domain.de ein SSL Zertifikat anlege in Plesk, dann gilt das nur für den Webspace dort, oder? Nicht aber übergreifend für alles?
Denn normalerweise gebe ich ja bei Posteingangsserver und Postausgangsserver auch mein-deomain.de ein. Aber das macht wahrscheinlich das Script deshalb notwendig. Sonst hätte es das ja nicht gebraucht.
————————————–
Mir kommt aber gerade die Idee:
Kann ich nicht folgende Dateien erstellen?
plesk_mailcert_domain1 mit der Angabe (Zeile 10 eintragen bei Github): HOSTNAME=“domain1.de“
plesk_mailcert_domain2 mit der Angabe (Zeile 10 eintragen bei Github): HOSTNAME=“domain2.de“
Dann hab ich für jedes eine Datei. Und richte für jede Datei einen Cronjob ein. Müsste doch gehen, oder?
______________________
Ich kann das leider nicht upgraden auf Onyx derzeit. Ich war damals so dämlich und habe Plesk 12.5 als x86 statt x64 Anwendung installiert. Ich müsste alles neu installieren. Und da hängt leider auch dazu, das ich meine Plesk Lizenz erweitern müsste, weil Funktionen dann nicht mehr vorhanden sind. Deshalb ist mir die Script Lösung derzeit lieber.
Und in 12.5 kann man ja leider nicht so easy mal das Webmail usw. mit LetsEncrypt zertifizieren. Deswegen ist die neue Anleitung nicht nutzbar für mich. :(
Hallo Sven,
genau so ist es. Das Zertifikat gilt dann nur für den Webspace, nicht jedoch für den Mailserver.
Dein 2. Ansatz mit dem Umschreiben könnte funktionieren, habe ich aber noch nicht getestet. Allerdings stellt sich für mich die Frage nach dem Warum? Alle großen Anbieter, sei es Strato, 1und1, usw. machen es auch so. Bei denen muss man auch beim Posteingangs- und Postausgangsserver immer den jeweiligen Host, also irgendwas mit strato.com bzw. 1und1.com eingeben, warum also diese „Strategie“ nicht auch bei Plesk? Ich jedenfalls mache es auch so, dass alle Kunden beim Mailprogramm als Posteingangs- und Ausgangsserver „it-fvb.de“ eingeben müssen, damit sie über SSL die Mails ohne Zertifikatsfehler abrufen können. Wenn das einmal eingerichtet ist, bekommen die Kunden und auch die Mail-Emfpänger nichts mehr sichtbar von diesen Zugangsdaten mit.
Viele Grüße
Falk
Hallo
bekomme bei „Jetzt uasführen! einen Fehler:
„Die Aufgabe „bash /opt/script/plesk_mailcert“ wurde in 0 Sekunden abgeschlossen, jedoch traten Fehler auf.
Einzelheiten ansehen “
Einzelheiten:
/opt/script/plesk_mailcert: line 1: server.edv-weinmann.de#!/bin/bash: No such file or Directory
Woran liegt das???
Hallo Gerd,
es gibt inzwischen eine viel einfachere Möglichkeit. Ich habe dazu den Beitrag soeben editiert.
Gruß
Falk
Besten Dank das hat funktioniert…
Puh endlich.. ;-)
Hi. Wie würde es mit einem Zertifikat funktionieren, wenn ich mehrere Webseiten über Plesk betreibe? Danke
mail.domain1.de / Mailserver für Domain1
mail.domain2.de / Mailserver für Domain2
Hallo Martin,
du kannst für jede Domain ein eigens Zertifikat über das Let’s Encrypt Tool erstellen lassen. Allerdings müsstest du, falls du die Subdomain „mail“ nutzen möchtest, diese Subdomain als eigenes Webhostingpaket anlegen. Nur dann kannst du diese Subdomain auch mit einem Zertifikat versehen.
Gruß Falk
Ich habe alles wie hier angegeben durchgeführt, aber habe immernoch das selbstsignierte Standard Zertifikat. Es gab beim Ausführen keine Fehlermeldung. Jemand eine Idee wo das Problem seinn könnte?
Hallo Peter, hast du auch darauf geachtet als Mailserver im Mailprogramm nur noch die Domain ohne die Subdomain anzugeben? Also nicht mail.meinedomain.de sondern einfach nur meinedomain.de
Gruß Falk