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.

Kategorien:Exchange