Die Registration Authority (RA) Zertifikate für den Registrierungsdienst für Netzwerkgeräte (NDES) erneuern

Ist NDES einige Zeit in Betrieb (typischerweise zwei Jahre), steht man vor der Herausforderung, die Registration Authority (RA) Zertifikate zu erneuern. Dieser Prozess ist leider nicht unbedingt intuitiv gelöst und wird daher in diesem Artikel näher beschrieben.

Der Registrierungsdienst für Netzwerkgeräte (Network Device Enrollment Service, NDES) bietet eine Möglichkeit, Geräten, welche nicht über eine Kennung im Active Directory verfügen (beispielsweise Netzwerkgeräte wie Router, Switches, Drucker, Thin Clients oder Smartphones und Tablets), Zertifikate von einer Zertifizierungsstelle zu beantragen. Für eine detailliertere Beschreibung siehe Artikel "Grundlagen Registrierungsdienst für Netzwerkgeräte (Network Device Enrollment Service, NDES)".

Die Erneuerung der RA Zertifikate ist technisch betrachtet eine Beantragung neuer Zertifikate, daher wird dieser Begriff nachfolgend auch verwendet

Bei der Installation der NDES Rolle werden auf der dazgehörigen Zertifizierungsstelle zwei Standard-Zertifikatvorlagen veröffentlicht, welche für die Beantragung der Registration Authority Zertifikate verwendet werden.

  • CEP Encryption
  • Exchange Enrollment Agent (Offline Request)

Option 1: Beantragung neuer RA Zertifikate mit eigenen Zertifikatvorlagen (empfohlen)

Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.

Spätestens für die anstehende Erneuerung der bietet es sich an, angepasste Zertifikatvorlagen zu konfigurieren und zu verwenden, da diese einige Vorteile gegenüber den Standardvorlagen bieten.

Die Konfiguration und Beantragung von RA Zertifikaten mit eigenen Zertifikatvorlagen ist im Artikel "Eigene Registration Authority (RA) Zertifikatvorlagen für den Registrierungsdienst für Netzwerkgeräte (NDES) verwenden" beschrieben. Diese Methode sollte bevorzugt verwendet werden.

Falls gewünscht, kann man die Erneuerung aber auch mit den Standardvorlagen vornehmen, was nachfolgend beschrieben wird.

Option 2: Beantragung neuer RA Zertifikate mit den Standard-NDES-Zertifikatvorlagen

Die Erneuerung der Zertifikate mit den Standardvorlagen besteht aus folgenden Schritten:

  • Konfiguration der Zertifikatvorlagen (Berechtigungen zum Beantragen)
  • Beantragen des CEP Encryption Zertifikats im Computer-Zertifikatspeicher
  • Beantragen des Exchange Enrollment Agent Zertifikats im Benutzer-Zertifikatspeicher
  • Exportieren des Exchange Enrollment Agent Zertifikats aus dem Benutzer-Zertifikatspeicher
  • Importieren des Exchange Enrollment Agent Zertifikats im Computer-Zertifikatspeicher
  • Berechtigungen auf private Schlüssel setzen

Hintergrund

Zunächst eine kurze Erklärung zu den Hintergründen, warum die Prozedur so kompliziert ist: Die Registraton Authority Zertifikate müssen im Computer-Zertifikatspeicher des NDES Systems platziert werden. Eine der beiden Zertifikatvorlagen ist jedoch als Benutzer-Zertifikatvorlage konfiguriert, sodass sie nicht im Computer-Speicher beantragt werden kann

Mit den folgenden Kommandozeilenbefehlen erhält man einen Einblick in die auf den Zertifikatvorlagen gesetzten Flags:

certutil -ds -v "CEPEncryption"
certutil -ds -v "EngollmentAgentOffline"

Die CEP Encryption Vorlage beinhaltet das Flag CT_FLAG_MACHINE_TYPE, welches dafür sorgt, dass ein Zertifikat für diese Vorlage nur für Computerkonten beantragt werden kann.

Der Exchange Enrollment Agent (Offline Request) Vorlage hingegen fehlt das Flag CT_FLAG_MACHINE_TYPE, somit können Zertifikate nur im Benutzerkontext beantragt werden.

Theoretisch könnte man das CT_FLAG_MACHINE_TYPE Flag auf der Exchange Enrollment Agent Zertifikatvorlage mit Active Directory Werkzeugen die dem ADSI Editor (adsiedit.msc) setzen, dies wird aber vom Hersteller nicht unterstützt, d.h. man wird keine Unterstützung im Fehlerfall erhalten.

Konfiguration der Zertifikatvorlagen

Im Karteireiter "Security" der CEP Encryption Zertifikatvorlage muss das Computerkonto des NDES-Servers das Recht erhalten, Zertifikate von dieser Vorlage zu beantragen.

Im Karteireiter "Security" der Exchange Enrollment Agent (Offline Request) Zertifikatvorlage muss darum derjenige Benutzer, welcher das Zertifikat beantragen wird das Recht erhalten, Zertifikate von dieser Vorlage zu beantragen.

Beantragen des CEP Encryption Zertifikats im Computer-Zertifikatspeicher

Die CEP Encryption Zertifikatvorlage kann direkt über die Computer-Zertifikatkonsole (certlm.msc) des NDES-Servers beantragt werden. Hierzu klickt man mit rechts auf den Knoten "Certificates" unter "Personal" und wählt "All Tasks" – "Request New Certificate…".

Die CEP Encryption Vorlage sollte zur Auswal stehen. Bevor die Zertifikatanforderung abgeschickt werden kann, muss sie aber noch konfiguriert werden. Hierzu wird auf "Details" geklickt, anschließend auf "Properties".

Die Zertifikatanforderung muss eine Identität enthalten. Diese kann entweder in Form eines Subject vom Typ "Common Name", oder als Subject Alternative Name erfolgen (oder beides). Der Inhalt der Identität ist technisch betrachtet egal und sollte eher anhand organisatorischer Kriterien gewählt werden.

Anschließend kann die Zertifikatanforderung an die Zertifizierungsstelle gesendet werden.

Beantragen des Exchange Enrollment Agent Zertifikats im Benutzer-Zertifikatspeicher

Die Exchange Enrolment Agent Zertifikatvorlage muss im Gegensatz zur CEP Encryption Zertifikatvorlage über die Benutzer-Zertifikatmanagementkonsole (certmgr.msc) beantragt werden. Hierzu klickt man mit rechts auf den Knoten "Certificates" unter "Personal" und wählt "All Tasks" – "Request New Certificate…".

Die Exchange Enrollment Agent (Offline Request) Vorlage sollte zur Auswal stehen. Bevor die Zertifikatanforderung abgeschickt werden kann, muss sie aber noch konfiguriert werden. Hierzu wird auf "Details" geklickt, anschließend auf "Properties".

Die Zertifikatanforderung muss eine Identität enthalten. Diese kann entweder in Form eines Subject vom Typ "Common Name", oder als Subject Alternative Name erfolgen (oder beides). Der Inhalt der Identität ist technisch betrachtet egal und sollte eher anhand organisatorischer Kriterien gewählt werden.

In der Karteikarte "Private Key" muss unter "Key Options" noch die Option "Make private key exportable" aktiviert werden, damit das Zertifikat anschließend inklusive privatem Schlüssel exportiert werden kann.

Anschließend kann die Zertifikatanforderung an die Zertifizierungsstelle gesendet werden.

Exportieren des Exchange Enrollment Agent Zertifikats aus dem Benutzer-Zertifikatspeicher

In der Benutzer-Zertifikatmanagementkonsole wird nun rechts auf das beantragte Zertifikat geklickt und die Option "All Tasks" – "Export…" gewählt.

Man wält die Option, dass man den privaten Schlüssel exportieren möchte

Als Dateiformat wählt man "Personal Information Exchange – PKCS #12 (.PFX)", was der Standardauswahl entspricht. Die Option "Include all certificates in the certificate path if possible" kann auf Wunsch deaktiviert werden.

Man vergibt ein Passwort für das exportierte Zertifikat.

Man vergibt einen Speicherort und einen Dateinamen für das Zertifikat.

Anschließend kann der Assistent abgeschlossen werden.

Importieren des Exchange Enrollment Agent Zertifikats im Computer-Zertifikatspeicher

Nun wechselt man in die Computer-Zertifikatmanagementkonsole (certlm.msc) und klickt mit rechts auf den Knoten "Certificates" unter "Personal" und wählt "All Tasks" – "Import…".

Man wählt die zuvor exportierte Datei aus. Falls sie nicht angezeigt wird, mus das Anzeigefilter noch auf "Personal Information Exchange (*.pfx; *.p12)" geändert werden.

Man gibt das zuvor vergebene Passwort ein.

Man bestätigt, dass das Zertifikat in den "Personal" Zertifikatspeicher importiert werden soll.

Nun kann der Assistent abgeschlossen werden.

Berechtigungen auf private Schlüssel setzen

Nun müssen die Berechtigungen auf die privaten Schlüssel beider Zertifikate gesetzt werden. Dies erfolgt über die Managementkonsole für Computerzertifikate (certlm.msc).

Man klickt nacheinander mit rechts auf die beiden Zertifikate und wählt "All Tasks" – "Manage Private Keys…".

Das NDES Dienstkonto benötigt "Read" Berechtigung auf den privaten Schlüssel.

Sofern NDES unter der Identität des SCEP IIS Anwendungspools läuft, stößt man auf das Problem, dass kann man diese nicht über die Zertifikate-Managementkonsole eintragen kann. Man findet aber hier ein PowerShell Script, mit welchem dieses erledigt werden kann.

NDES kann anschließend mit dem iisreset neu gestartet werden und sollte anschließend wie gewohnt arbeiten.

Funktionstest

Der NDES Dienst wird erst geladen, wenn sich der erste Client verbindet. Um nach der erfolgten Zertifikatbeantragung also sicherstellen zu können, dass der NDES Dienst diese auch verwenden kann, sollte diese Clientverbindung simuliert werden. Hierfür kann folgender Windows PowerShell Befehl verwendet werden:

[void](Invoke-WebRequest -Uri "http://localhost/certsrv/mscep/mscep.dll/pkiclient.exe?operation=GetCACaps")

Anschließend kann die Ereignisanzeige des NDES Servers gesichtet werden, ob der Dienst erfolgreich gestartet werden konnte (Ereignis Nr. 1).

Weiterführende Links:

Externe Quellen

de_DEDeutsch