Neue Version des Exchange Zertifikatsassistent für Let’s Encrypt

Am 06.02.2017 hatte ich die erste Version des Zertifikatsassistent für Exchange 2016 und Let’s Encrypt veröfferntlicht. Der Zertifikatsassistent vereinfacht das Anfordern, Erneuern und Installieren eines SSL-Zertifikats für Exchange 2016. Nun gibt es Dank Bjoern eine neue Version.

Bjoern hat sich die Mühe gemacht und einige Änderungen vorgenommen, sodass der Zertifikatsassistent auch mit Exchange 2010 und Exchange 2013 funktioniert. Des weiteren ist das mehrmalige Ausführen pro Tag dank Bjoerns Änderungen nun auch möglich. Häufiges Ausführen des Scripts ist allerdings mit etwas Vorsicht zu genießen, hier gibt es Limits von Let’s Encrypt:

https://letsencrypt.org/docs/rate-limits/

Falls das ACMESharp Modul nicht bereits installiert ist, wird nun die Version 0.8.1 durch das Script installiert. Die Version des ACMESharp Moduls ist zwar etwas älter, aber damit funktioniert die HTTP Validierung durch Let’s Encrypt noch.

Nach wie vor gelten ein paar Voraussetzungen für den Assistenten, diese sind hier beschrieben:

https://www.frankysweb.de/exchange-2016-zertifikatsassistent-fuer-lets-encrypt/

  • Der Exchange Server muss unter Port 443 und 80 öffentlich erreichbar sein
  • PowerShell IIS Modul (Webadministration)
  • Exchange Management Shell
  • ACMESharp PowerShell Client (wird installiert, wenn nicht vorhanden)

Neue Version des Exchange Zertifikatsassistent für Let’s Encrypt

Die aktuelle Version des Zertifikatsassistenten kann hier runtergeladen werden:

Durch die geplante Aufgabe wird das Zertifikat 4 Tage vor Ablauf erneuert. Ob das Zertifikat erneuert wurde, sollte also 3 Tage vor Ablauf kontrolliert werden.

Ein komplette Überarbeitung des Scripts habe ich ebenfalls vorgesehen, bin aber leider noch nicht dazu gekommen. Es steht erst einmal ein Update für den Exchange Reporter in den Startlöchern. Verbesserungsvorschläge und Wünsche sind per Mail willkommen.

Vielen Dank an Bjoern!

Update 10.09.17: Edwin van Brenk hat das Script ins Englische übersetzt, vielen Dank dafür! Link siehe unten.

Edwin van Brenk has translated the script to English language. Many thank for your work. You will find the English version here:

16 Replies to “Neue Version des Exchange Zertifikatsassistent für Let’s Encrypt”

  1. Getestet auf SBS2011, Exch2010 SP3, CU17 bzw. CU18 (Stand 09/2017)
    set-executionpolicy bypass
    und Windows Management Framework 5.1 installieren müssen https://www.microsoft.com/en-us/download/details.aspx?id=54616

    Skript funktioniert 1a! Null IIS-Kenntnisse erforderlich, keine Exchange, gar nix. Funktioniert sogar EINFACHER als der Exchange-/SBS-integrierte Assistent und der ist nicht öffentlich gültig.
    Aufgabenplanung auch Task erstellen lassen und Erneuerung auf jedes Monat eingestellt.

    TOP Skript!

  2. Hallo Mr Buabe,

    soweit ich weiss ist Powershell 5 inkompatibel mit dem SBS 2011 – gibt es da irgendwelche Seiteneffekte oder Fehlermeldungen?
    Ist das in mehreren Installationen getestet?

  3. Powershell v5 wird nur für PSGet benötigt um ACMESharp zu installieren. Über kleine Umwege kann man ACMESharp auch manuell ohne PSGet installieren (z. B. Save-Module von einem anderem System mit PSv5 und dann in den entsprechenden Powershell Module Ordner auf dem Zielsystem kopieren). Wichtig hierbei, die Version 0.8.1 verwenden, mit der aktuellen Version von ACMESharp gab es bei meinem Test Probleme.

    WMF Updates würde ich bei Exchange Servern vermeiden: „Version of Windows Management Framework built into the release of Windows Server you’re installing Exchange on.“ siehe https://technet.microsoft.com/de-de/library/ff728623(v=exchg.150).aspx

  4. Hallo!
    Ein super Skript! Dafür erst mal vielen Dank!!
    Ich habe aber nun ein kleines Problem auf einem Server 2016 an dem ich schier verzweifle … :-(
    Und zwar kann bei mir ACME nicht installiert werden, da die PS angeblich keine Verbindung zum Internet hat. Daher kann nichts nachgeladen werden. Der Server ist aber direkt ohne Proxy mit dem Internet verbunden. Der Server steht zu Hause und hängt hinter einer FritzBox. Ping an eine externe URL funktioniert auch.
    Auf einem Server in Azure hat es auch problemlos funktioniert, auch direkt im Internet und auch 2016. Da läuft das Skript ohne Probleme durch.
    Von Exchange her ist auf beiden Seiten 2016 mit CU6 installiert.
    Ich finde einfach den Unterschied bei beiden Servern wegen der Verbindung zum Internet!!!
    Habt dazu vielleicht jemand eine Idee???
    Danke an alle schon im Voraus!
    Viele Grüße
    Carsten

  5. das Script an sich ist Super !!!
    Auf dem Server 2012R2 mit Exchange 2016 CU6 musste ich allerdings einige Unwegbarkeiten ausräumen, damit das Script fehlerfrei durchläuft:
    PSget gibts für die PS 3 oder 4 als MSI-Download: hier: https://docs.microsoft.com/de-de/powershell/gallery/psget/get_psget_module
    damit kann man dann das passende ACMESharp installieren mit Install-Module -Name ACMESharp -RequiredVersion 0.8.1
    und dann läuft das Script einwandfrei durch

    Von Installation des PS 5 auf dem 2012R2 mit Exchange wird abgeraten, was ich auch bestätigen kann: davon geht dann die Exchange-PS-Console flöten.

    Danke und Gruß

    Alexander

  6. Nachtrag: ACMESahrp bitte mit Install-Module -Name ACMESharp -RequiredVersion 0.8.1 -AllowClobber installieren :) sons

    @Frank, kannst du die Kommentare zusammenführen? Danke

  7. vielleicht kann mir hier jemand helfen:
    Exchange fängt 3 Monate vor Ablauf eines Zertifikats Errors ins Eventlog zu schreiben:
    „ID 12017: An internal transport certificate will expire soon.
    Thumbprint:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, expires: 04.01.2018 08:00:34“
    und coolerweise noch eine weitere:
    „ID 12018 The STARTTLS certificate will expire soon: subject: email.xxxxxxx.de, thumbprint: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, expires: 04.01.2018 08:00:34. Run the New-ExchangeCertificate cmdlet to create a new certificate.“
    das ist zwar nur ein Schönheitsfehler, aber dennoch nervig.
    das neue Zertifikat zu holen ist hier ja keine Lösung, irgendwo müsste man den Zeitpunkt der Meldung nur verstellen können (eine Woche vorher oder so), nur wo?

    Danke im Voraus

  8. Mich würde auch interessieren ob es eine Lösung zu dem von Alexander Schröder angesprochenen Fehler gibt.

  9. Hallo,
    Nach ein bisschen herumprobieren lief das Script auch bei mir durch (W2k12R2/Ex 2016) bis dann zum schluss diese Fehlermeldung kommt.
    „Carry out validation: Cert171120170209-1
    Carry out validation: Cert171120170209-2
    Carry out validation: Cert171120170209-3
    Carry out validation: Cert171120170209-4
    wait 30 Seconds…
    Check whether the DNS names have been validated…
    Update Alias: Cert171120170209-1
    Error: Validation failed for alias Cert171120170209-1“
    Ports 80/443 sind weitergeleitet, Firewall ist aus.
    Woran könnte das liegen?

  10. ich habe noch einen tipp den ich gerne loswerden möchte und mich jetzt einige zeit an suche gekostet hat.

    bitte führt das script bevor das ihr die Alten SSL/TLS Protokolle am Exchange Server deaktiviert (thema Exchange 2016 Installation absichern). ist das geschehen kann keine verbindung zum repository aufgebaut werden.

    danach kann man die protokolle mit dem iis crypto wieder deaktivieren.

  11. Hallo Zusammen,
    ich habe auf meinen Windows 2012 R2 und Exchange 2013 CU12 die Fehlermeldung erhalten „Install-Module“ not found und habe voreilig WMF 5.1 installiert. Nun funktioniert die EMS nicht mehr. Wie kann ich WMF 5.1 deinstallieren, so dass WMF 4.0 wieder sauber arbeitet?
    VG Dieter

  12. einfach unter Programme (Systemsteuerung\Programme\Programme und Features\installierte Updates\ )das entsprechende KB deinstallieren. Dann sollte es wieder gehen.

  13. Script hat auf SBS2011 geklappt.
    Musste nur Powershellget als msi installieren.

    Schön wäre es wenn jetzt noch die Anforderung nur per 443 gehen würde, damit man den Port 80 wieder schließen könnte.

  14. Hallo Zusammen,
    danke für den Hinweis von Alexander Schröder. Ich konnte die Version 5.1 wieder deinstallieren.
    Ich musste für WinRM die Registry-Einstellungen noch anpassen, dann war alles wieder gut.
    VG Dieter

  15. Hallo,
    bekomme auf einen SBS2011 mit Exchange 2010 folgende Meldung wenn das Script versucht das Zert auf dem Exchange zu importieren:

    Zertifikat wird Exchange zugewiesen und aktiviert
    Import-ExchangeCertificate : Beim Exchange-Zertifikatvorgang ist eine Ausnahme aufgetreten. Die Fehlermeldung lautet:
    Unknown error (0xe0434f4d)
    In C:\CertificateAssistant\CertificateAssistant.ps1:370 Zeichen:4
    + Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path $CertPath – …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation: (:) [Import-ExchangeCertificate], LocalizedException
    + FullyQualifiedErrorId : A84B44C1,Microsoft.Exchange.Management.SystemConfigurationTasks.ImportExchangeCertificat
    e

    Prüfe ob das Zertifikat aktiviert wurde
    Aktivierung ist fehlgeschlagen

    Kann mir jemand helfen???

  16. Seit ich das Zertifikat installiert und die Einstellungen am Exchange verändert habe, kann ich kein neues Profil bei Outlook einrichten. Ich bekomme die Fehlermeldung:
    „Die Aktion kann nicht abgeschlossen werden. Es steht keine Verbindung mit Microsoft Exchange zur Verfügung. Outlook muss im Onlinemodus oder verbunden sein, um diesen Vorgang abzuschließen.“
    Zuvor kommt eine Fehlermeldung da der autodiscover nicht der gleiche Host ist. Ich konnte das Zertifikat nicht auf autodiscover austellen. Kann es an dem Zertifikat liegen, dass das Outlook-Profil nicht mehr angelegt werden kann?

Schreibe einen Kommentar

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