Exchange Server 2019 und SHA1-Zertifikate

Zuletzt aktualisiert am 3. August 2023.

Im Jahr 2023 sollte man davon ausgehen, dass aktuelle Softwareprodukte SHA1 für Verschlüsselung und Signaturalgorithmus nicht mehr verwenden. Aber weit gefehlt. Dieser Artikel befasst sich mit dem Verhalten von Exchange Server 2019 bei der Ausstellung einer Zertifikatsanfrage, dem sog. Certificate Requests für ein neues Zertifikat.

Aufgekommen ist das Thema, weil ein Kunde beim Einreichen der Zertifikatsanfrage von der Zertifizierungsstelle die Fehlermeldung erhielt, dass die Zertifikatsanfrage einen unsicheren Signaturalgorithmus verwendet.

Aber der Reihe nach.

Problem

Exchange Server ermöglicht die Erstellung einer neuen Zertifikatsanfrage mit Hilfe des Cmdlets New-ExchangeCertificate. Mit diesem Befehl haben wir in der Vergangenheit schnell und einfach neue Anfragen für TLS-Zertifikate für den konfigurierten Exchange Namensraum erstellt.

# Request erstellen
$request = New-ExchangeCertificate -SubjectName "c=DE,o=Varuna Group,cn=mail.varunagroup.de" -DomainName autodiscover.varunagroup.de,mail.varunagroup.de -GenerateRequest

# Request als Datei speichern
[System.IO.File]::WriteAllBytes("\\$($env:COMPUTERNAME)\E$\SCRIPTS\CertRequest.req", [System.Text.Encoding]::Unicode.GetBytes($request))

Im Anschluss haben wir den Request mit dem CSR-Dekoder dekodiert.

Screenshot des CSR-Dekoders mit einem Teil der Zeichenfolge des CSR-Requests.

Im dekodierten Request sahen wir die Ursache, warum die Zertifizierungsstelle die Originalanfrage abgeleht hat.

  • Signature Algorithm: sha1WithRSAEncryption
Screenshot des Request Decoder mit sha1WithRSAEncryption
Screenshot – CSR-Dekoder mit Signaturalgorithmus sha1WithRSAEncryption

Der Grund für dieses Problem liegt im Cmdlet New-ExchangeCertificate selbst. Eigentlich sollte das Problem mit Exchange Server 2019 CU11 gefixt sein, wie dieser Knowledge Base Artikel beschreibt. Der Fix greift nur für Neuinstallationen von Exchange Server, nicht bei der Installation eines kumulativen Updates als Aktualisierung. Ebenso greift er Fix nicht für die Erstellung von neuen Zertifikatsanfragen mit New-ExchangeCertificate. Der Fix betrifft einzig die Erstellung der selbstsignierten Zertifikate bei einer Neuinstallation mit einer neuen Exchange Organisation. Die Nutzung von SHA1 für Zertifikatsanfragen im Cmdlet New-ExchangeCertificate ist hart kodiert.

Lösung

Damit SHA256 als Signatur-Algorithmus verwendet wird, ist die Nutzung des Kommandozeilentools certreq und einer .inf-Konfigurationdatei. Damit hat man die volle Kontrolle über den Hash-Algorithmus und weitere Parameter.

Beispiel einer Konfigurationsdatei. Zeile 14 definiert den Hash-Algorithmus.

Die Erstellung des Requests erfolgt mit folgendem Befehl in einer administrativen Kommandozeile.

CertReq -new certificate.inf certrequestRSA256.req

Die Datei certrequestRSA256 enthält anschließend den Request. Die Prüfung mit dem CSR-Dekoder zeigt die richtige Antwort. Der Signaturalgorithmus ist sha256WithRSAEncryption.

Screenshot des Request Decoder mit sha256ithRSAEncryption
Screenshot – CSR-Dekoder mit Signaturalgorithmus sha256WithRSAEncryption

Das von der Zertifizierungsstelle ausgestellte Zertifikat wird auf dem gleichen System, auf dem Request erstellt wurde, mit folgendem Kommando importiert.

CertReq -accept DATEINAME.crt

Hierbei werden der private Schlüssel, der in der Zertifikatanfrage gespeichert ist, mit dem ausgestellten Zertifikat verheiratet. Anschließend kann das Zertifikat mit privatem Schlüssel für die Sicherung oder die Übertragung auf andere Systeme exportiert werden.

Empfehlung

Die vollständige Kontrolle über einen Zertifikatrequest hat du mit einer Konfigurationsdatei und dem Kommandozeile-Tool CertReq.exe. Der Zugriff auf dem lokalen Zertifikatspeicher ist geschützt. Daher kann das Tool in einer Kommandozeile mit administrativen Berechtigungen korrekt arbeiten.

Die von Exchange Server selbst-signiert ausgestellten Zertifikate erfüllen alle eine Zweck. Wenn Zertifikate einfach aus dem Zertifikatspeicher eines Exchange Server entfernt werden, weil sie selbst-signiert sind oder aber über einen SHA1-Algorythmus verfügen, kommt es zu einem Fehlverhalten von Exchange Server. Wenn diese Zertifikate ausgetauscht werden müssen, um z.B. Sicherheitsrichtlinien des Unternehmens zu erfüllen, so muss dies planvoll erfolgen. Die Zertifikate sind kontrolliert, mit neuen Sicherheitsfunktionen, zu erneuern.

Links

Viel Spaß mit Exchange Server.

Kommentar verfassen

Klicken Sie auf den unteren Button, um den Inhalt von jetpack.wordpress.com zu laden.

Inhalt laden

%d Bloggern gefällt das: