Plesk LetsEncrypt für Mailserver

bashMit der neuen LetsEncrypt Authority ist es möglich unter Plesk 12.5 sowohl die einzelnen Domains abzusichern wie auch das Plesk Panel selber.  Wer jetzt auch noch seine Mailserver mit dem gleichen Zertifikat bedienen möchte kann das auf dem manuellen Weg erreichen. Dies führt dann aber zu regelmäßigem Aufwand da das Zertifikat immer nur 3 Monate gültig ist und Plesk eine Erneuerung monatlich durchführt. Zudem bekommt das PEM File nach jeder Erneuerung einen neuen Dateinamen.

Daher das ganze in Script Form, es genügt den benutzten Plesk Hostnamen im Script zu definieren, der Rest passiert von selbst. Das ganze dann einfach monatlich durch CRON laufen lassen.

Bash Script: MAILCERT auf Github

Zur Zeit wird unterstützt:

  • Postfix
  • Courier IMAP und POP3
  • Dovecot
  • Webmin

Fragen? Bitte nutzt mein Forum: forum.powie.de

Update Plesk 17

Achtung: Ab der Version 17 – Plesk Onyx, benötigt ihr dies nicht mehr. Hier könnt ihr das Zertifikat selbst dem Mailserver zuteilen. Dies erfolgt unter: Tools & Einstellungen > SSL/TLS Zertifikate. Trotzdem bleibt das Script nutzbar für zum Bsp. Webmin!

20 Comments

  1. Norman

    Vielen Dank für das tolle Script!!

    Du solltest allerdings in deinem Artikel noch erwähnen, dass das LetsEncyrpt Plesk Plugin max. für die verwendete Domain und die http://www.Domain ein Zertifikat erstellt.
    Bei Nutzung von Plesk 12.5 und dessen Mailserver Installation hat man aber ein Szenario, wo der Mailserver unter verschiedenen Subdomains verwendet wird, welche NICHT im Zertifikat erfasst werden (webmail.domain, imap.domain, pop3.domain).

    Das LetsEncrypt Plugin bietet derzeit (Version 1.4) noch keine Möglichkeit, weitere DNS Namen einzutragen 🙁

    1. Das ist richtig. Aber aus vielen anderen Gründen auch, vor allem bzgl. sauberen Handling von Anti-Spam Prozeduren, macht es immer Sinn für all diese Mail Sachen immer den richtigen Hostname zu benutzen.

  2. Oje, ich würde gern das Script nutzen aber ich weiß nicht wohin damit? Es steht überall ich muss den Cron Job ausführen, ja würd ich gern machen, aber wo oder was muss ich mit dem Script machen? Hochladen irgendwo?

    1. Wenn du nicht weisst wie man ein Bash Script ausführt und per CRON regelmäßig aufruft ist das ganze Konstrukt nichts für dich….
      Du kannst das doch ablegen wo du willst. Bei mir liegt das in /opt/script , aber das ist letztlich jeden selbst überlassen.

      1. Daniel McDonald

        Hallo,

        Danke. Das ist wenig Hilfreich aber es hat soweit geklappt.
        Nur meldet das Mailprogramm immer folgendes: Falsche Webseite.

        Benutzt wurde das Zerti von dem Hostname.
        Der Hostname stimmt auch in der Ausgabe. Hatte ihn auch manuell gesetzt im Script.

        Wenn ich den Hostname als Mailserver im Client einstelle sagt er falsche Webseite, Zerti gilft für mydomain.com. Wenn ich als Mailserver „mydomain.com“ nehmen (Was ja ursprünglich so eingestellt war) meldet er aber AUCH „Falsche Webseite“ und sagt das Zerti ist für den HOSTNAME.

        Das scheint mir durcheinander zu sein. Bin natürlich genau nach Anleitung. Das ich garnicht erst mail.mydomain.com nutzen muss weiß ich, richtig?

  3. Tolles Script, ich habe mir noch eine Funktion für QMail gebaut:

    #copy pem to qmail
    certforqmail () {
    if [ -e /var/qmail/control/servercert.pem ]
    then
    if diff /var/qmail/control/servercert.pem $CERTFILE > /dev/null
    then
    echo -e „\e[33mSkipped: \e[39mQMail already up to date.“
    else
    cp ${CERTFILE} /var/qmail/control/servercert.pem
    echo -e „\e[32mSUCCESS: \e[39mQMail Certificate Updated“
    service qmail restart
    fi
    fi
    }

    # Die Funktion copycerts() habe ich natürlich entsprechend erweitert

    copycerts() {
    certfordovecot
    certforpostfix
    certforcourier
    certforqmail
    certforwebmin
    }

    1. Probiere das mal in CentOS, sollte genau so funktionieren wenn die CONF Files an den selben Stellen liegen. Wenn nicht macht es keine Änderungen.
      Wäre auch für CentOS anpassbar falls da Pfade anders sind, aber mangels eines Systems mit CentOS fehlt mir da die Möglichkeit.

  4. Alex

    Hallo,

    vielleicht stehe ich auf der Leitung, aber was ist denn, wenn man mehrere Domains in Plesk verwaltet? Dann müsste es ja auch mehrere unterschiedliche Zertifikate geben. Wie würde das dann funktionieren?

  5. Kaphalor

    Vielen Dank für das Script!
    Funktioniert übrigens auch mit Plesk Onyx 17.0.17 auf Ubuntu 14.04.
    Werde nächste Woche mal den Server auf Ubuntu 16.04 updaten und hoffe es läuft dann immer noch so reibungslos 🙂

      1. Kaphalor

        Das Funktioniert, solange man nur eine Domain hat bzw. Plesk auch auf der Domain läuft und auch nur für die Subdomain „webmail.domain.tld“.
        Soweit ich aber gesehen habe nicht für den Mailserver als solches … oder habe ich da was übersehen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.