Quantcast
Channel: Andy – Andy's Blog
Viewing all articles
Browse latest Browse all 2209

MDaemon und Let’s Encrypt

$
0
0

Seit Version 17.0 unterstützt der MDaemon Messaging Server die automatische Einbindung von Let’s Encrypt-Zertifikaten. Im Rahmen eines Kundenprojekts hatte ich nun Gelegenheit, dieses zu Nutzen.

Voraussetzungen

Damit Let’s Encrypt genutzt werden kann, müssen die Ports 80/tcp (http) und 443/tcp (https) in der Firewall am Internetzugang als auch in der Windows-Firewall des Systems, auf dem der MDaemon installiert ist, freigegeben sein.

Ferner muss eine Domäne im öffentlichen DNS registriert sein, die auf die IP-Adresse des Internetanschlusses verweist. Hat man keine feste öffentliche IP-Adresse können DDNS-Dienste verwendet werden. In diesem Fall wird spDYN (vormals SPDNS) verwendet.

Im MDaemon Messaging Server muss, ausgehend von der Voreinstellung, nichts angepasst werden. Auf Windows-Seite muss je nach Version und Ausgabe ggf. noch die PowerShell (min. Version 3.0) aktualisiert, die PowerShell-Ausführungsrichtlinie angepasst und ACMEsharp installiert werden. Siehe dazu

MDaemon Online Hilfe – Erstellen und Verwenden von SSL-Zertifikaten – Using Let’s Encrypt to Manage Your Certificate

Let’s Encrypt Community – Windows 7 & MDaemon: error installing the certificate

Wichtig ist, das der SMTP-Hostname der Standard-Domäne (i.d.R. die erste Domäne) unter „Einstellungen – Domänen-Manager – <Domäne> – Hostname & IP – SMTP-Hostname“ der öffentliche Domäne, also hier der spDYN-Domäne, entspricht. Andernfalls bricht das Ausstellen des Zertifikats ab. Die Mail-Domäne ansich kann einen anderen Namen haben.

Zertifikat ausstellen

Sind die Voraussetzungen erfüllt, kann durch folgenden Befehl das Zertifikat ausgestellt werden:

powershell LW:\MDaemon\LetsEncrypt\LetsEncrypt.ps1

Dabei handelt es sich um die minimalste Angabe. Unter Umständen muss ein „-ExecutionPolicy Bypass“ nach „powershell“ eingefügt werden. Man kann zusätzlich noch alternative Domänen, sofern verwendet den IIS-SiteName und die Postmaster-Mail-Adresse angeben:

LetsEncrypt.ps1 -AlternateHostNames mail.domain.tld,wc.domain.tld -IISSiteName MeineSite -To "admin@domain.tld"

Lässt man „-to admin@domain.tld“ weg, wird automatisch „postmaster@<SMTP-Hostname>“ verwendet. In diesem Fall wäre das also die spDYN-Domäne: „postmaster@subdomain.spdns.de“.

Hinweis: Die TLD „.local“ kann sowohl als primäre als auch alternative Domäne nicht verwendet werden!

Das PowerShell-Skript führt die notwendige Schritte aus das Zertifikat zu bekommen, ändert die relevanten *.ini-Dateien des MDaemon ab (MDaemon.ini, WordClient.ini, WebAdmin.ini) und startet den MDaemon neu. Von daher sollte beachtet werden, wann man das Zertifikat ausstellt bzw. dieses erneuert wird, damit im laufenden Betrieb nicht (wenn auch nur kurz) die Verbindungen unterbrochen werden.

Zertifikat erneuern

Die Zertifikate von Let’s Encrypt laufen alle 90 Tage ab, daher sollte man diese automatisch verlängern bzw. neu ausstellen lassen. Dazu muss lediglich der oben genannte Befehl erneut ausgeführt werden. In Form eines kleines Batch-Skriptes und der Windows-eigenen Aufgabenplannung kann das z.B. so aussehen:

@echo off

powershell LW:\MDaemon\LetsEncrypt\LetsEncrypt.ps1 -To "admin@domain.tld"

Soweit ich weiß kann frühstens nach 60 Tagen erneuert werden. Zu oft sollte man nicht versuchen, das Zertifikat neu ausstellen zu lassen, da es sonst zu einer Sperre (Duplicate Certificate, etc.) kommen kann.

Protokollierung (Logging)

Unter „LW:\MDaemon\Logs“ erstellt das PowerShell-Skript eine Datei mit dem Namen „LetsEncrypt.log“.

Die Meldungen sowohl bei der Ausgabe des Skripts als auch im Log sind gut verständlich. So lässt sich im Problemfall relativ leicht rauslesen, woran es hakt.

Wie geht es weiter mit Port 80/tcp (http)?

Zumindest für das erste Ausstellen wird Port 80/tcp (http) benötigt. Wie es dann beim Renewal aussieht, kann ich aktuell noch nicht sagen. Beim Kunden wurde nach dem Ausstellen des Zertifikats die Umleitung von „HTTP mit Umleitung nach HTTPS“ unter „Einstellungen – Web- & IM-Dienste…“ konfiguriert, da man denn WorldClient nicht unverschlüsselt stehen lassen wollte.

Ich werden dann in 90 Tagen berichten und diesen Beitrag aktualisieren.

Weitere Links und Quellen:

Alt-N Discussion Groups > MDaemon Discussion Groups > MDaemon Support > Archive > Let’s Encrypt Renewal


Viewing all articles
Browse latest Browse all 2209

Latest Images