NDES-Zertifikate erneuern

Der Network Device Enrollment Service (NDES) ist auf zwei verschiedene sogenannte Request Agent Zertifikate angewiesen. Das eine verwendet das Certificate Template „CEP Encryption“, das andere das Template „Exchange Enrollment Agent (Offline request)“.

Die Erneuerung der beiden Zertifikate stellt eine ganz besondere Herausforderung dar.

Es wäre naheliegend, die Zertifikate mithilfe der Certificate-Übersicht der MMC zu aktualisieren:

Rechtsklick auf das jeweilige Zertifikat > All Tasks > Advanced Operations > Renew This Certificate with the Same Key…

Leider schlägt dieses Verfahren bei beiden Zertifikaten in der Regel mit dem Status Unavailable fehl (hier beispielhaft für das Exchange Enrollment Agent-Zertifikat):

NDES-Bild1-CertificateEnrollment.png

Im Folgenden werde ich das Vorgehen zur Aktualisierung der beiden Zertifikate vorstellen:

CEP Encryption:

Für die Erneuerung dieses Zertifikats reicht es aus, kurzzeitig sowohl dem verwendeten Nutzeraccount, als auch dem zur Aktualisierung verwendeten Computer Write und Enroll Permissions (alternativ auch Full Access) auf das Template „CEP Encryption“ zu geben. Dazu laden Sie bitte das Snap-In Certificate Templates in die MMC und öffnen mit einem Rechtsklick auf das CEP-Template dessen Einstellungsmenü. Im Reiter Security können die Änderungen vorgenommen werden.

NDES-Bild2-Properties.png

Im Anschluss daran kann das auf CEP-basierende Zertifikat auf dem üblichen Weg aktualisiert werden.

Exchange Enrollment Agent (Offline Request):

Das zweite Zertifikat kann leider nicht so einfach aktualisiert werden. Hierfür muss auf das vorinstallierte Kommandozeilen-Tool certreq.exe zurückgegriffen werden, da es sich nicht über die MMC erneuern lässt.

Diese Vorgehensweise wurde von Microsoft für Windows Server 2008 vorgestellt [1]. Unsere Tests haben jedoch gezeigt, dass es ebenso unter Windows Server 2016/19 angewendet werden kann. Im Folgenden wird das Verfahren vorgestellt. Darüber hinaus werden einige Zusatzinformationen bereitgestellt, die bei der Lösung eventuell auftretender Probleme helfen können.

Zunächst muss die Datei Request.inf mithilfe eines Texteditors erstellt werden. Sie hat den folgenden Inhalt:

[Version]
Signature="$Windows NT$"
[NewRequest]
RenewalCert="<Certificate Hash>"
MachineKeySet=TRUE

Dabei entspricht der Wert "<Certificate Hash>" dem Thumbprint des zu erneuernden Exchange Enrollment Agent-Zertifikats.

Durch das Setzen des Parameters MachineKeySet wird das erneuerte Zertifikat wieder im Computer Certificate Store abgelegt und somit in der MMC sichtbar.

Beim Erstellen der Datei müssen einige wichtige Dinge beachtet werden:

  • Die Datei muss ANSI-codiert abgespeichert werden, damit sie von certreq verwendet werden kann.

  • Wenn die Datei später verwendet wird, kann es vorkommen, dass das Zertifikat nicht gefunden wird. Dies kann mehrere Gründe haben:
    Falls der Thumbprint abgetippt wurde, kann sich ein Tippfehler eingeschlichen haben. Falls der Thumbprint direkt in die ANSI-Datei hineinkopiert wurde, kann ein viel unscheinbarerer Fehler aufgetreten sein: Unter Umständen werden beim Kopiervorgang UTF8-kodierte Zeichen mitkopiert, die dann in der ANSI-kodierten Datei zwar nicht angezeigt werden, aber dennoch vorhanden sind. In diesem Fall empfiehlt es sich, die Datei nochmals in UTF8 zu konvertieren, abzuspeichern und anschließend wieder in ANSI zurück zu konvertieren und erneut abzuspeichern. Dadurch sollten die fehlerhaften Zeichen umkodiert werden. In meinem Fall haben sich zwei Fragezeichen in den Thumbprint eingeschlichen. Nach dem Löschen der unvorhergesehenen Zeichen war die Datei korrekt formatiert.

Geben Sie dem verwendeten Administratoraccount mithilfe des MMC-Snap-Ins Certificate Templates sowohl das Write als auch das Enroll-Recht auf das Template „Exchange Enrollment Agent (Offline Request)“ (wie im Schritt oben „CEP Encryption“).

Führen Sie nacheinander die folgenden drei Befehle in einer administrativen Kommandozeile aus und folgen Sie den angezeigten Anweisungen. Damit die in a. erstellte Request.inf von den Befehlen gefunden werden kann, müssen Sie zuvor zum Speicherort der Datei navigieren.

  1. CertReq.exe -New Request.inf Certnew.req

  2. CertReq.exe -Submit Certnew.req Certnew.cer

  3. CertReq.exe -Accept Certnew.cer

Im Anschluss daran sollte das erneuerte Zertifikat in der MMC angezeigt werden.

[1] https://support.microsoft.com/en-us/help/2712186/renewal-of-enrollment-agent-certificate-used-by-ndes-may-fail