Exchange & Let’s Encrypt mit CloudFlare
Wir haben einen OnPremise Exchange-Server, wollen den mit Zertifikaten von Let’s Encrypt absichern. Als DNS-Server nutzen wir CloudFlare.
CloudFlare
Bei CF erstellen wir zuerst einen API-Token, den unsere Software später nutzen kann, um DNS-Records zur Validierung zu erstellen. Dazu gehen wir auf folgende Seite: https://dash.cloudflare.com/profile/api-tokens
Wählen “Vorlage verwenden” aus
Geben dem Kind einen Namen, die Berechtigung Zone Bearbeiten und nur die Zone tino-ruge.de (bzw. eure Zone)
Noch mal die Zusammenfassung checken:
Token notieren:
Fertisch. Wir haben nun einen Token, mit dem DNS-Records on the fly geändert werden können.
ACME Client
WIN-ACME findet sich auf Github. Wir wollen sowohl die Pluggable-Version als auch dns.cloudflare.
Beide ZIP-Archive packen wir zusammen, sodass die DLLs aus der Pluggable-Version im selben Verzeichnis wie die wacs.exe liegt.
Diese führen wir als Administrator aus:
Uns grüßt eine freundliche CMD, die wir kurz durchklickern.
“Create Certificate (full options)” (M)
“Manual Input” (2)
Mit Kommatas getrennte Liste mit Domänen; in meinem Fall nur “mail.tino-ruge.de”
Hier einfach default accepten
Nun wählen wir CloudFlare (6):
Type/Paste (1)
Eingeben des Tokens von oben:
Auf Wunsch in der Vault speichern:
Falls ja einen Namen angeben:
Einfach auf RSA lassen (2 eingeben oder nur Enter drücken)
Wir wollen die Zertifikate im Windows Store speichern (4)
Store 2 (“My”)
Und nirgendswo anders (5)
Im Anschluss sollen die Bindings im ISS aktualisiert werden (1)
Und zwar die Default Website – bei mir “1”
Damit wir noch weitere Sachen machen können: “2”, ein Script ausführen
Das Script ist bei dem Programm mitgeliefert. Von dem geben wir nun den Pfad an; in meinem Fall D:\LetsEncrypt\Scripts\ImportExchange.ps1
Parameter für das Script sind laut Doku: '{CertThumbprint}' 'IIS,SMTP,IMAP' 1 '{CacheFile}' '{CachePassword}' '{CertFriendlyName}'
Mehr wollen wir dann nicht machen; also “3”
Die Terms können wir uns im Standardprogramm öffnen lassen (oder es auch einfach sein lassen):
Und dann haben wir sie natürlich gelesen und akzeptiert
Dann geben wir eine Email an:
Und schon beginnt er mit der Validation via CloudFlare. Wenn er fertig ist sieht das wie folgt aus und er fragt nach einem Benutzer, der die automatische Aufgabe anlegen soll. Wir sagen “nö”
Und damit sind wir wieder am Anfang des Programmes. Das können wir nun einfach mit “n” beenden
Das wars.
Wir haben auf dem Windows-Server einen Lets Encrypt-Client, welcher automatisch die SSL-Zertifikate generiert, im Windows Store hinterlegt und die relevanten Exchange-Dienste mit dem neuen Zertifikat ausstattet.
Das Programm hat sich selber als geplante Aufgabe hinterlegt, von daher ist das nun alles ein Selbstläufer.