Ich hatte es ja bereits angekündigt, dass der Zertifikatsassistent ein Update für Let’s Encrypt erhält. Die Version für Exchange 2016 ist jetzt fertig.
Der Zertifikatsassistent kann mit wenigen Angaben ein Zertifikat von Let’s Encrypt holen und danach auch vollautomatisch erneuern.
Getestet habe ich dieses Script bisher mit Windows Server 2016 und Exchange Server 2016. Tests für Server 2012 R2 und Exchange Server 2013/2016 bereite ich gerade vor und werde die Version ggf. entsprechend anpassen. Bisher gibt es also nur Unterstützung für Server 2016 und Exchange 2016, weitere Versionen folgenden.
Das Script funktioniert relativ einfach und ohne viel zutun. Folgende Voraussetzungen gibt es allerdings:
- Exchange Server muss mit gültigen URLs / Hostnamen konfiguriert sein
- Alle Hostnamen müssen aus dem Internet erreichbar sein
- Die konfigurierten Hostnamen müssen per HTTP (Port 80) aus dem Internet erreichbar sein
Die Vorausetzungen gelten damit Let’s Encrypt die Domains validieren kann. Interne Hostnamen, wie zum Beispiel exsrv1.domain.local lassen sich also nicht verwenden.
Der Zertifikatsassistent liest die konfigurierten Hostnamen aus und holt dann ein entsprechendes SAN-Zertifikat von Let’s Encrypt. Das Zertifikat wird im Anschluss automatisch aktiviert.
Da Let’s Encrypt Zertifikate nur 3 Monate lang gültig sind, kann eine geplante Aufgabe erstellt werden, die 4 Tage vor Ablauf das Zertifikat erneuert. Für die Erneuerung ist keine Benutzerinteraktion nötig.
Für Tests lässt sich der Zeitpunkt der Erneuerung selbst bestimmen (Zeile 402 im Script). Beispielsweise könnte hier 30 Tage eingetragen werden, um genügend Zeit für die Fehleranalyse zu haben. Bisher habe ich das Script in drei unterschiedlichen Exchange Umgebungen getestet, bisher erfolgreich. Ich freue mich aber über Feedback.
So sieht die Oberfläche mit allen nötigen Eingaben aus:
Der Rest funktioniert automatisch und dauert ca. 2 Minuten:
In der Aufgabenplanung wird eine Aufgabe zu Erneuerung angelegt, Die Aufgabe startet jeden Tag um 23:00 Uhr und erneuert das Zertifikat 4 Tage vor Ablauf:
Bekannte Probleme:
- Wenn noch keine Registrierung bei Let’s Encrypt vorliegt, wird eine Fehlermeldung generiert, die Registrierung wird dann aber durchgeführt.
- Es gibt noch keine Benachrichtigung oder Fehlerbehandlung für das Erneuern
Abhängigkeiten:
- PowerShell IIS Modul (Webadministration)
- Exchange Management Shell
- ACMESharp PowerShell Client (wird installiert, wenn nicht vorhanden)
Wer Lust hat kann die erste Version testen, natürlich können hier noch diverse Probleme auftauchen, daher bitte vorerst nicht in produktiven Umgebungen einsetzen.
Feedback und Probleme bitte via Kontaktformular. Bei Problemen bitte immer Screenshots oder die Ausgabe anhängen.
Hinweis: Eine komplett überarbeitete Version findet sich hier (Beta):