Nach der Installation einer Zertifizierungsstelle, nach der Migration auf einen neuen Server, oder nach umfangreicheren Wartungsarbeiten sollte ein ausgiebiger Funktionstest erfolgen, um sicherzustellen, dass alle Komponenten der Zertifizierungsstelle wie gewünscht arbeiten.
Funktionstest durchführen
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.
Zu einem Funktionstest der Zertifizierungsstelle gehören die folgenden Schritte:
- Überprüfung der Verbindung zum privaten Schlüssel
- Start des Zertifizierungsstellen-Dienstes sicherstellen
- Überprüfen der Ereignisanzeige der Zertifizierungsstelle
- Die Verbindung zum Enrollment-Interface der Zertifizierungsstelle testen
- Zertifizierungsstellen-Austausch-Zertifikat generieren und überprüfen
- Eine Zertifikatvorlage auf Zertifizierungsstelle veröffentlichen
- Ein Zertifikat von der Zertifizierungsstelle beantragen
- Ein Zertifikat widerrufen
- Eine Zertifikatsperrliste veröffentlichen
- Erneutes überprüfen des Zertifikats
Details: Überprüfung der Verbindung zum privaten Schlüssel
Insbesondere, wenn ein Hardware Security Modul eingesetzt wird, sollte zu allererst überprüft werden, ob die Verbindung zu diesem funktioniert und das private Schlüsselmaterial von der Zertifizierungsstelle verwendet werden kann. Die Vorgehensweise hierfür ist im Artikel "Überprüfen der Verbindung zum privaten Schlüssel eines Zertifikate (z.B. bei Einsatz eines Hardware Security Moduls)" beschrieben.
Details: Start des Zertifizierungsstellen-Dienstes sicherstellen
Als nächstes sollte überprüft werden, ob der Zertifizierungsstellen-Dienst korrekt startet.
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The system cannot find the file specified. 0x2 (WIN32: 2 ERROR_FILE_NOT_FOUND)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "Object was not found. 0x80090011 (-2146893807 NTE_NOT_FOUND)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The device that is required by this cryptographic provider is not ready for use. 0x80090030 (-2146893776 NTE_DEVICE_NOT_READY)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The parameter is incorrect. 0x80070057 (WIN32: 87 ERROR_INVALID_PARAMETER)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The certificate is revoked. 0x80092010 (-2146885616 CRYPT_E_REVOKED)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The data is invalid. 0x8007000d (WIN32: 13 ERROR_INVALID_DATA)."
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. 0x800b0109 (-2146762487 CERT_E_UNTRUSTEDROOT)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "A certificate chain could not be built to a trusted root authority. 0x800b010a (-2146762486 CERT_E_CHAINING)"
- Der Zertifizierungsstellen-Dienst startet nicht und wirft die Fehlermeldung "The revocation function was unable to check revocation because the revocation server was offline. 0x80092013 (-2146885613 CRYPT_E_REVOCATION_OFFLINE)"
Details: Überprüfen der Ereignisanzeige der Zertifizierungsstelle
Füe Informationen zu den einzelnen Ereignissen siehe Artikel "Übersicht über die von der Zertifizierungsstelle generierten Windows-Ereignisse".
Zunächst sollte die Windows-Ereignisanzeige auf der Zertifizierungsstelle nach allen Ereignissen der Zertifizierungsstelle untersucht werden, die auf einen Fehler hinweisen könnten. Hierzu gibt es in der Ereignisanzeige eine vorgefertigte Ansicht unter "Custom Views" – "Server Roles" – "Active Directory Certificate Services", welche bereits die benötigten Filter auf die Ereignisanzeige definiert hat.
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
- Details zum Ereignis mit ID 27 der Quelle Microsoft-Windows-CertificationAuthority
- Details zum Ereignis mit ID 44 der Quelle Microsoft-Windows-CertificationAuthority
- Details zum Ereignis mit ID 74 der Quelle Microsoft-Windows-CertificationAuthority
- Details zum Ereignis mit ID 100 der Quelle Microsoft-Windows-CertificationAuthority
Details: Verbindung zum Enrollment-Interface der Zertifizierungsstelle testen
Zunächst sollte ein einfacher Test durchgeführt werden, ob Clients eine Verbindung zur Zertifizierungsstelle aufnehmen können. Dies kann mit folgendem Kommandozeilenbefehl erreicht werden:
certutil -config {ConfigString} -ping
Der ConfigString bezeichnet hierbei die Verbindungsinformation zur Zertifizierungsstelle im Format "{Servername}\{Common-Name}".
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
Details: Zertifizierungsstellen-Austausch-Zertifikat generieren und überprüfen
Um sicherzustellen, dass die Zertifizierungsstelle die Sperrlistenverteilungspunkte (CRL Distribution Point, CDP), Informationen für den Stellenzugriff (Authority Information Access, AIA) und Zertifikatrichtlinien in die ausgestellten Zertifikate schreibt, wird ein Zertifkat benötigt, dessen Inhalte anschließend überprüft werden.
Die anschließende Prüfung kann prizipiel mit jedem beliebigen von der Zertifizierungsstelle ausgestellten Zertifikat erfolgen. Das Zertifizierungsstellen-Austausch-Zertifikat bietet sich jedoch an, da dieses automatisch von der Zertifizierungsstelle erzeugt wird und von jedem Benutzer im Active Directory angefragt werden kann. So entfällt an dieser Stelle vorerst der Bedarf zur potentiell umständlichen Erstellung einers Zertifikatantrags.
Das Zertifikat für den Zertifizierungsstellen-Austausch kann mit folgendem Kommandozeilenbefehl erzeugt werden:
certutil -cainfo xchg > test.cer
Der Befehl kann wie oben aufgeführt direkt auf der Zertifizierungsstelle ausgeführt werden. Bei einer Active Directory integrierten Zertifizierungsstelle kann er auch von einem anderen Domänenmitglied ausgeführt werden, wenn der -config Schalter mit dem Config String (Servername\Common-Name) als Argument mit angegeben wird.
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
Das mit dem Befehl erstellte Zertifikat kann nun per Doppelklick inspiziert werden.
Folgende Inhalte des Zertifikats müssen überprüft werden:
- Sperrlistenverteilungspunkte
- Zugriff auf Stelleninformationen
- Zertifikatrichtlinien
Die im Zertifkat angegebenen Adressen für Sperrlistenverteilungspunkte (CRL Distribution Point, CDP), Informationen für den Stellenzugriff (Authority Information Access, AIA) können anschließend mit folgendem Kommandozeilenbefehl überprüft werden:
certutil -verify -urlfetch {Dateiname}.cer
Der -urlfetch Schalter umgeht das lokale Caching, und führt zu einer Kommandozeilen-Ausgabe anstelle einer graphischen Oberfläche. Näheres hierzu siehe Artikel "Den Adress-Zwischenspeicher für Sperrlisten (CRL URL Cache) einsehen und löschen".
Aufgrund der umfangreichen Ausgabe wird empfohlen, die Kommandozeilenausgabe in eine Textdatei umzuleiten.
In der Kommandozeilenausgabe findet sich das jeweilige Prüfergebnis für alle Adressen aller Zertifikate in der Kette. Diese sollten allesamt erfolgreich überprüft worden sein. Fehler werden mit einem detaillierten Fehlercode ausgegeben, der die Ursache beschreibt.
Am Ende der Kommandozeilenausgabe finden sich die Prüfergebnisse für Zertifikatrichtlinien, Sperrstatus und Vertrauensstatus (nur im Fehlerfall).
Details: Eine Zertifikatvorlage auf der Zertifizierungsstelle veröffentlichen
Um die Berechtigungen der Zertifizierungsstelle auf ihr pKIEnrollmentService Objekt zu überprüfen, und anschließend ein Zertifikat beantragen zu können, sollte nun eine Zertifikatvorlage auf der Zertifizierungsstelle veröffentlicht werden.
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
- Das Veröffentlichen einer Zertifikatvorlage auf einer Zertifizierungsstelle schlägt fehl mit Fehlermeldung "The template information on the CA cannot be modified at this time. This is most likely because the CA service is not running or there are replication delays. Access is denied. 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)"
- Nach der Migration der Zertifizierungsstelle auf einen neuen Server können keine eigenen Zertifikatvorlagen mehr veröffentlicht werden
Details: Ein Zertifikat von der Zertifizierungsstelle beantragen
Um zu überprüfen, ob die Zertifikatregistrierungs-Richtlinien korrekt konfiguriert sind, und ob die Zertifizierungsstelle Zertifikatanträge signieren kann, sollte nun ein Zertifikat von der zuvor veröffentlichten Zertifikatvorlage beantragt werden.
Falls sich die Zertifizierungsstelle wie im Artikel "Eine Active Directory integrierte Zertifizierungsstelle (Enterprise Certification Authority) in den Wartungsmodus versetzen" beschrieben im Wartungsmodus befindet, muss dem beantragenden Benutzer- oder Computerobjekt das Recht "Request Certificates" in den Sicherheitseinstellungen der Zertifizierungsstelle vorübergehend explizit gewährt werden, bis der Wartungsmodus wieder verlassen wird.
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
- Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "0x800b0101 (-2146762495 CERT_E_EXPIRED)"
- Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "The encryption certificate for the certification authority (CA) could not be retrieved. Error: The RPC server is unavailable. 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)”
- Die Beantragung eines Zertifikats schlägt fehl mit Fehlermeldung "0x8009400b (-2146877429 CERTSRV_E_NO_VALID_KRA)"
- Die Beantragung eines Zertifikats schlägt fehl mit der Fehlermeldung "You cannot request a certificate at this time because no certificate types are available."
- Die Beantragung eines Zertifikats schlägt fehl mit der Fehlermeldung "A certification chain processed correctly, but one of the CA certificates is not trusted by the policy provider. 0x800b0112 (-2146762478 CERT_E_UNTRUSTEDCA)"
- Die Beantragung eines Zertifikats schlägt fehl mit der Fehlermeldung "The requested operation cannot be completed. The computer must be trusted for delegation and the current user account must be configured to allow delegation. 0x80090345 (-2146892987 SEC_E_DELEGATION_REQUIRED).". Beim Import von PFX-Dateien fehlt der private Schlüssel.
- Die Beantragung eines Zertifikats für Domänencontroller schlägt fehl mit Fehlermeldung "The RPC server is unavailable. 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)"
- Die Beantragung eines Zertifikats schlägt fehl mit der Fehlermeldung "A valid certification authority (CA) configured to issue certificates based on this template cannot be located, or the CA does not support this operation, or the CA is not trusted."
Details: Ein Zertifikat widerrufen
Um zu überprüfen, ob der Widerruf eines Zertifikats korrekt von allen Teilnehmern im Netzwerk erkannt wird, sollte das zuvor beantragte Zertifikat nun widerrufen werden. Die Vorgehensweise zum Widerrufen eines Zertifikats ist im Artikel "Widerrufen eines ausgestellten Zertifikats" beschrieben.
Details: Eine Zertifikatsperrliste ausstellen
Nachdem das Zertifikat widerrufen wurde, kann nun die Erstellung einer Zertifikatsperrliste getestet werden. Die Vorgehensweise zum Ausstellen einer Zertifikatsperrliste ist im Artikel "Erstellen und Veröffentlichen einer Zertifikatsperrliste" beschrieben.
Die Zertifikatsperrliste sollte nun erstellt und die Seriennummer des widerrufenen Zertifikats auf dieser wieder zu finden sein.
Falls es bei diesem Schritt zu Problemen kommt, können folgende Artikel unter Umständen hilfreich sein:
- Die manuelle Veröffentlichung einer Zertifikatsperrliste (CRL) ins Active Directory schlägt fehl mit Fehlermeldung 0x8007202b (WIN32: 8235 ERROR_DS_REFERRAL)
- Die Veröffentlichung einer Zertifikatsperrliste (CRL) schlägt fehl mit Fehlermeldung "The directory name is invalid. 0x8007010b (WIN32/HTTP: 267 ERROR_DIRECTORY)"
- Die Veröffentlichung einer Zertifikatsperrliste (CRL) schlägt fehl mit Fehlermeldung "Access is denied. 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)"
- Die Veröffentlichtung einer Zertifikatsperrliste (CRL) schlägt fehl mit der Fehlermeldung "Directory object not found. 0x8007208d (WIN32: 8333 ERROR_DS_OBJ_NOT_FOUND)"
- Die Veröffentlichtung einer Zertifikatsperrliste (CRL) schlägt fehl mit der Fehlermeldung "Insufficient access rights to perform the operation. 0x80072098 (WIN32: 8344 ERROR_DS_INSUFF_ACCESS_RIGHTS)"
Details: Erneutes überprüfen des Zertifikats
Das widerrufene Zertifikat sollte sich nun auf der Sperrliste befinden und sollte von den Teilnehmern als widerrufen erkannt werden. Daher sollten die im Abschnitt "Zertifizierungsstellen-Austausch-Zertifikat generierten und überprüfen" beschriebenen Schritte zur Überprüfung der Adressen innerhalb des Zertifikats nun erneut durchgeführt werden.
Sicherheitshalber sollte der lokale Cache für die Sperrinformationen vorher gelöscht werden, wie es im Artikel "Den Adress-Zwischenspeicher für Sperrlisten (CRL URL Cache) einsehen und löschen " beschrieben wird.
Der Widerruf des Zertifikats sollte nun korrekt erkannt und gemeldet werden.
Falls ein Online Responder eingesetzt wird, verfügt dieser über einen Server-seitigen Cache, sodas er den Widerruf des Zertifikats erst reflektiert, wenn die vorige Zertifikatsperrliste abgelaufen ist.
Weiterführende Links:
- Widerrufen eines ausgestellten Zertifikats
- Erstellen und Veröffentlichen einer Zertifikatsperrliste
- Konfiguration der Sperrlistenverteilpunkte (CDP) und der Authority Information Access (AIA) Erweiterung einer Zertifizierungsstelle
- Den Adress-Zwischenspeicher für Sperrlisten (CRL URL Cache) einsehen und löschen
- Eine Active Directory integrierte Zertifizierungsstelle (Enterprise Certification Authority) in den Wartungsmodus versetzen
6 Gedanken zu „Funktionstest durchführen für eine Zertifizierungsstelle“
Kommentare sind geschlossen.