Die automatische Erneuerung von Zertifikaten in Microsoft Exchange
Abgelaufene Zertifikate können kritische Ausfälle verursachen und sie passieren schneller, als man denkt. Öffentliche Zertifikate werden meist automatisch erinnert, interne oft vergessen. Dieser Beitrag zeigt, wie du mit Windows Server die automatische Erneuerung von Webserver-Zertifikaten einrichtest, welche Stolpersteine es gibt und wann du lieber auf manuelle Kontrolle setzen solltest.
Vergesslichkeit liegt in der Natur des Menschen. In der IT zeigt sich das oft in abgelaufenen Zertifikaten. Im Falle von öffentlichen Zertifikaten kannst du dir sicher sein, dass der Herausgeber eine Erinnerung schickt – schliesslich lässt er sich für die Erneuerung bezahlen. Anders sieht es bei Zertifikaten von internen Zertifizierungsstellen aus: Hier müsstest du eine Erinnerung in deinen Kalender eintragen und den Kalender dann auch noch rechtzeitig konsultieren.
In vielen Umgebungen funktioniert das aus verschiedenen Gründen nicht:
- Zu kleine IT-Abteilung
- Niemand fühlt sich verantwortlich
- Nicht genügend organisiert
- Zu wenig Fachwissen
- etc.
Die Lösung?
Vor Kurzem wurde ich darauf aufmerksam gemacht, dass in den Versionen ab Windows Server 2008 R2 eine Funktion zu Verfügung steht, die ein automatisches Erneuern von Webserver-Zertifikaten erlaubt. Erneuerungen von zum Beispiel Computer-Zertifikaten waren schon vorher kein Problem, da bei diesen die Information für das Ausstellen (Subject Name, Subject Alternative Names, Key Length etc.) aus Active Directory entnommen werden. Bei Webservern stimmt der Name im Zertifikat meist nicht mit dem FQDN des Servers überein. Zum Beispiel verwendet der Exchange Server in meinen Screenshots mail.domainA.com und autodiscover.domainA.com. Für diese Fälle ist nun das erwähnte Feature gedacht. Der Client muss dies natürlich unterstützen, weswegen mindestens Windows 7 und 2008 R2 vorausgesetzt werden.
Die Konfiguration ist einfach. Im Web Server Template musst du diese Option auswählen: Use subject information from existing certificates for autoenrollment renewal requests.
Des Weiteren musst du dafür sorgen, dass der Computer Account des Servers Enroll- und Autoenroll-Berechtigungen hat:
Die Gruppenrichtlinie sorgt nun dafür, dass das Zertifikat vor Ablauf erneuert wird:
Achtung! Bei sehr kurzer Gültigkeitsdauer kann das Zertifikat ungültig werden, bevor die Gruppenrichtlinie die Erneuerung auslöst. Das gleiche gilt, wenn der Gruppenrichtlinien-Refresh-Intervall verlängert wurde.
Die Probleme
Leider hat die Lösung einen Haken. Zwar wird das Zertifikat im Store des Betriebssystems erneuert, aber Applikationen, die das Zertifikat verwenden, müssen ihren eigenen Mechanismus haben, um dies auch zu erkennen. IIS 8.5 in Windows Server 2012 R2 ist nötig, damit die Bindung des Zertifikats an eine Website ebenfalls angepasst wird. Dies wird durch diese Option erreicht (gelb markiert): Enable Automatic Rebind of Renewed Certificate
Exchange selber weist dem Zertifikat Dienste wie IIS, SMTP, POP und IMAP zu. Diese Zuordnung ändert sich, da auch der Fingerabdruck (Thumbprint) des erneuerten Zertifikats wechselt. Der Effekt ist in der Exchange Management Shell ersichtlich:
Das Zertifikat wurde zwar erneuert und ist auch in IIS ersichtlich, aber die Zuweisung des Diensts IIS (im Screenshot unter Services mit W gekennzeichnet) fehlt. Wohlgemerkt: Alle von mir getesteten Clients funktionieren in diesem Zustand und nach einem Reset von IIS ist der Service wieder zugewiesen. Aber Verhalten und Timing sind nicht voraussehbar. Da erstaunt es wenig, dass das Exchange-Produktteam diese Art von automatischer Erneuerung nicht unterstützt!
Fazit
Die automatische Erneuerung und Rebinding in IIS 8.5 sind tolle Features für einen Webserver oder eine Applikation, die keine eigene Zuweisung von Zertifikaten vornimmt. Für Exchange hingegen solltest du davon absehen, da diese Methoden von Microsoft nicht unterstützt werden..