MonitorExchangeAuthCertificate
Dies ist kein Skript von mir sondern Microsoft stellt ihnen damit ein Werkzeug bereit, um das Exchange OAuth -Zertifikat zu überwachen und ggfls. zu erneuern. Dies ist alle 5 Jahre erforderlich.
Prüfen vor Update
Für jede Exchange Organisation gibt es genau ein solches Zertifikat, mit dem sich die Server untereinander z.B. beim Proxying fron HTTP-Requests von einem Frontend zum Backend authentifizieren können. Zudem wird es auch mit Exchange Online - Hybrid zur Authentifizierung mit Exchange Online genutzt. Seit dem Exchange Nov 2023-Update nutzt Exchange das Zertifikat zusätzlich zum Signieren der Payload bei der PowerShell Serialization.
Wenn Zertifikate abgelaufen sind, kann sogar das Setup des CU13 fehlschlagen, wie folgende Meldung zeigt:
Es ist also immer eine gute Idee, den Status der Exchange Zertifikate im Blick zu haben und entsprechend zu aktualisieren. Die "öffentlichen" Zertifikate, mit denen sich die Anwender z.B. per OWA, ActiveSync oder MAPI/HTTP verbinden gelten ebenso wie für SMTP genutzte Zertifikate meist nur ein Jahr. Hier haben Sie hoffentlich etwas Übung mit der Erneuerung. Beim OAUTH-Zertifikat ist das meist nicht so. Viele Administratoren wissen gar nicht um dessen Funktion. Da kann man auch die 5 Jahre mal gerne vergessen.
Fehler korrigieren
Sollten Sie hier in den Fehler gelaufen sein, dass die Installation eines Exchange Update fehlschlägt, dann starten Sie auf dem Server einfach eine normale PowerShell als Administrator. Die Exchange PowerShell können Sie meist nicht mehr starten, da der Exchange Server und IIS dann schon nicht mehr aktiv sind und die neue PowerShell 7 kennt den Befehl "Add-PSSnapin" nicht, den wir nun brauchen:
# Einbinden des Exchange Management Snapins ohne RBAC und Remote PowerShell Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 #Anzeigen der lokalen Zertifikat auf dem Server Get-ExchangeCertificate | ft thumbprint,status,notafter,subject
Über den Weg können Sie nun mit "New-ExchangeCertificate" einfach das Selbstzertifikat schon neu erzeugen, ungültige Zertifikate entfernen und auch das OAUTH-Zertifikat austauschen. Aber nun ist der Moment für das Microsoft Skript gekommen
MonitorExchangeAuthCertificate.ps1
Spätestens mit dem Nov 2023 Update sollte jeder Exchange Administrator dieses Skript kennen und den Einsatz prüfen. Natürlich können Sie manuell die Gültigkeit und das Ablaufdatum des Zertifikats mit PRTG oder anderen Tools genauso gut überwachen. Aber das Skript macht doch einiges einfacher und noch einiges mehr. Ein Download ist es allemal wert
- MonitorExchangeAuthCertificate
https://microsoft.github.io/CSS-Exchange/Admin/MonitorExchangeAuthCertificate/
ValidateAndRenewAuthCertificate
Dies gilt insbesondere, wenn Sie das Zertifikat aktualisieren wollen. Auch das ist manuell möglich aber das Skript nimmt ihnen schon einige Arbeit ab. Hier am Beispiel einer Demo-Umgebung, bei der das OAUTH-Zertifikat abgelaufen war und daher die Installation des Exchange 2019 CU13 scheiterte. Ich habe das Skript mit "-ValidateAndRenewAuthCertificate $true" gestartet und alle Eingaben vorher geprüft. Sie sehen so genau, was das Skript noch alles macht und welche
Das Skript prüft und in meinem Fall findet es ein abgelaufenes Zertifikat, welches sofort erneuert und aktiviert werden muss.
- Zuerst generiert das Skript mit "New-ExchangeCertificate" ein Oauth Zertifikat
- Dann wird es mit "Enable-ExchangeCertificate" ein andere Zertifikat für
IMAP, POP, IIS, SMTP aktiviert
Prüfen Sie vorher den Thumbprint, ob dies das richtige Zertifikat ist. Es war in meinem Fall nicht das gerade neu generierte OAuth-Zertifikat - Mit Set-AuthConfig wird dann das neue OAUTH-Zertifikat aktiviert
- Mit Set-AuthConfig wird dann das neue OAUTH-Zertifikat publiziert
- Mit Set-AuthConfig -ClearPreviousCertificate wird dann das neue
OAUTH-Zertifikat
Das ist in Ordnung, wenn es eh schon abgelaufen ist und nicht mehr genutzt werden konnte. Bei einem geplanten Rollover würde man das neue erst einrichten und die Replikation abwarten und das alte nach einigen Tagen entfernen - WebAppPool neu starten
Damit das neue Zertifikat aktiv wird, muss der Web Application Pool neu gestartet werden. Das sollten Sie vielleicht abstimmen, damit keine Anwender davon betroffen sind.
Wer genau aufgepasst hat, wird nun sagen, dass etwas fehlt: Das OAuth-Zertifikat kann auch für die Authentifizierung im Hybrid-Mode mit Exchange Online genutzt werden. Wenn Sie hier das lokale Zertifikat tauschen, dann sollten Sich auch noch einmal manuell oder mit dem HCW - Hybrid Configuration Wizard die Konfiguration aktualisieren.
Danach hatte mein Exchange Server ein neues "CN=Microsoft Exchange Server Auth Certificate". Das Vorgänger-Zertifikate wurde aber nicht gelöscht.
Das Skript hat sich auch nicht dem "Self Signed"-Zertifikat des Servers angenommen, welches ebenfalls schon abgelaufen war. Das Skript "MonitorExchangeAuthCertificate" überwacht nur das OAUTH-Zertifikat
Übrigens protokolliert das Skript eine Aktivitäten auch im Verzeichnis C:\Program Files\Microsoft\Exchange Server\V15\Logging\AuthCertificateMonitoring des Servers.
Automatismus
Microsoft hat dem Skript neben der reinen Prüfung und Aktualisierung sogar noch einen "Automatic"-Mode mitgegeben. Sie können das Skript über Parameter anweisen, dass es sich selbst als "geplanten Task" einrichtet, der die Überwachung übernimmt, Mails versendet etc. Nicht umsonst ist das Script über 180kByte groß.
Als geplanter Task legt das Skript ein AD-Konto (SystemMailbox{b963af59-3975-4f92-9d58-ad0b1fe3a1a3}) an, welches in die ebenfalls neu angelegte RBAC-Role Group "Auth Certificate Management" aufgenommen und lokaler Administrator auf dem Exchange Server wird.
Vielleicht nutzt Microsoft dieses Skript auf ihren Servern in der Cloud aber ich bin relativ sicher, dass ganz wenige Administratoren das Skript so einsetzen werden, eher etwas Grips in die eigene Überwachung der Zertifikate stecken und alle paar Jahre mal interaktiv das Zertifikat aktualisieren.
- MonitorExchangeAuthCertificate
https://microsoft.github.io/CSS-Exchange/Admin/MonitorExchangeAuthCertificate/
Weitere Links
- Exchange OAuth
- PowerShell Serialization
- Exchange Online - Hybrid
- Exchange PowerShell
- PowerShell Remote nutzen
- HCW - Hybrid Configuration Wizard
- MonitorExchangeAuthCertificate
https://microsoft.github.io/CSS-Exchange/Admin/MonitorExchangeAuthCertificate/ - How to fix Get-ExchangeCertificate shows
blank output
https://www.alitajran.com/get-exchangecertificate-blank-output/ - Enable PowerShell serialization payload
signing in Exchange Server
https://www.alitajran.com/powershell-serialization-payload-signing/