Grundlagen manuelle und automatische Zertifikatbeantragung über Lightweight Directory Access Protocol (LDAP) und Remote Procedure Call / Distributed Common Object Model (RPC/DCOM) mit dem MS-WCCE Protokoll

Nachfolgend wird der Prozess beschrieben, der im Hintergrund bei der manuellen oder automatischen Beantragung von Zertifikaten abläuft, um einen möglichst hohen Automatisierungsgrad zu erreichen.

Ganz gleich ob eine manuelle Beantragung über die Zertifikat-Managementkonsolen (certmgr.msc für Benutzer- und certlm.msc für Computerzertifikate) stattfindet, der Ablauf ist identisch.

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.

Schritt 1: Abfrage des Verzeichnisdienstes über LDAP

Im ersten Schritt baut der Client eine LDAP-Verbindung zu einem Domänencontroller auf und fragt die folgenden Informationen ab:

  • Alle pKICertificateTemplate Objekte (Zertifikatvorlagen) in der Active Directory Gesamtstruktur.
  • Alle pKIEnrollmentService Objekte (Enterprise Zertifizierungsstellen) in der Active Directory Gesamtstruktur.
  • Alle msPKI-Enterprise-Oid Objekte (Object Identifier) in der Active Directory Gesamtstruktur.

Diese Informationen sind allesamt in der Configuration Partition der Active Directory Gesamtstruktur gespeichert.

Anhand der pKICertificateTemplate und msPKI-Enterprise-OID Objekte kann ermittelt werden, ob der Antragsteller zur Beantragung ("Enroll") berechtigt ist und ob eine automatische Beantragung zu erfolgen hat ("Auto-Enroll"). Ebenso werden hierüber die Voreinstellungen für das Stellen der Zertifikatanforderung ermittelt.

Die Verbindung zwischen bereits vorhandenen Zertifikaten und den Zertifikatvorlagen wird über die Erweiterung "Certificate Template Information" hergestellt. Hier findet sich der Object Identifier der Zertifikatvorlage sowie Versionsinformationen. Somit wird vermieden, dass bei Autoenrollment Zertifikate doppelt beantragt werden, und Zertifikate können neu beantragt werden, wenn sich eine gravierende Änderung ereignet hat. Ersetzte Zertifikate können anhand dieser Informationen erkannt und archiviert werden.

Aus diesem Grund darf die "Certificate Template Information" Erweiterung bei Zertifikaten, für die Autoenrollment eingesetzt werden soll, auch keinesfalls entfernt werden, da der Prozess andernfalls nicht mehr funktioniert und Nebenwirkungen auftreten könnten.

Anhand der pKIEnrollmentService Objekte können die Zertifizierungsstellen ermittelt werden, welche die zu beantragenden Zertifikatvorlagen anbieten, sowie auf welchem Computer im Netzwerk die Zertifizierungsstelle ausgeführt wird. Hierzu werden die Attribute certificateTemplates sowie dNSHostName ausgewertet.

Schritt 2: Verbindung zur Ziel-Zertifizierungsstelle über RPC/DCOM (MS-WCCE)

Im zweiten Schritt werden anhand der abgefragten Informationen ein Schlüsselpaar sowie eine Zertifikatanforderung generiert, und an die zuständige Zertifizierungsstelle gesendet. Hierbei wird das Windows Client Certificate Enrollment Protocol (MS-WCCE) verwendet.

Sollten mehrere Zertifizierungsstellen die gleiche Zertifikatvorlage anbieten, entscheidet das Zufallsprinzip, sofern keine Standortbewusstheit (Site Awareness) konfiguriert wurde.

Die Zertifizierungsstelle kann den Benutzer aufgrund der Kerberos-Authentifizierung identifizieren und wendet mit ihrem Policy-Modul die in der entsprechenden Zertifikatvorlage vorgegebenen Einstellungen an.

Steuerung des Client-Verhaltens für Autoenrollment

Die Steuerung des Client-Verhaltens wird per Gruppenrichtlinie gesteuert. Die Gruppenrichtlinien bestehen einmal für Benutzer- und für Computereinstellungen.

Sie sind zu finden unser "User-" bzw. "Computer Configuration" – "Windows Settings" – "Public Key Policies" – "Certificate Services Client – Autoenrollment".

  • Das "Configuration Model" bewirkt, dass der Autoenrollment Prozess überhaupt ausgeführt wird. Ist diese Einstellung nicht durch eine Gruppenrichtlinie konfiguriert, ist sie per Standardeinstellung auf einem Domänenmitglied aktiviert.
  • Die Einstellung "Renew expired certificates, update pending certificates, and remove revoked certificates" bewirkt, dass abgelaufene Zertifikate automatisch erneuert werden, sofern sie von einer Active Directory integrierten Zertifizierungsstelle ausgestellt wurden. Außerdem werden genehmigte Zertifikatanforderungen von Zertifizierungsstellen abgeholt, sofern diese vorliegen. Widerrufene Zertifikate werden archiviert. Ist diese Einstellung nicht durch eine Gruppenrichtlinie konfiguriert, ist sie per Standardeinstellung auf einem Domänenmitglied deaktiviert.
  • Die Einstellung "Update certificates that use certificate templates" bewirkt, dass Zertifikate automatisch beantragt werden, welche für den Antragsteller für Autoenrollment freigegeben sind. Ist diese Einstellung nicht durch eine Gruppenrichtlinie konfiguriert, ist sie per Standardeinstellung auf einem Domänenmitglied deaktiviert.

In der Standardeinstellung replizieren alle Domänenmitglieder durch den Autoenrollment Prozess also automatisch das Public Key Services Objekt der Active Directory Gesamtstruktur, wenn die Auslösung getriggert wird.

Ermittlung der aktuellen Konfiguration

Die Einstellungen können über die Registry auf Windows-Computern überprüft werden. Sie finden sich im Wert "AEPolicy" unter folgenden Pfaden:

PfadBeschreibung
HKCU\Software\Policies\Microsoft\Cryptography\AutoEnrollmentBenutzereinstellungen, per Gruppenrichtlinie konfiguriert
HKCU\Software\Microsoft\Cryptography\AutoEnrollmentBenutzereinstellungen, lokal konfiguriert
HKLM\Software\Policies\Microsoft\Cryptography\AutoEnrollmentComputereinstellungen, per Gruppenrichtlinie konfiguriert
HKLM\Software\Microsoft\Cryptography\AutoEnrollmentComputereinstellungen, lokal konfiguriert

Per Gruppenrichtlinien konfigurierte Einstellungen haben Vorrang vor lokal konfigurierten Einstellungen.

Eine Abfrage kann über die Kommandozeile erfolgen.

Beispiel: Per Gruppenrichtlinie gesetzte Einstellungen für das aktuell angemeldete Benutzerkonto.

reg query ^
HKCU\Software\Policies\Microsoft\Cryptography\AutoEnrollment ^
/v AEPolicy

Beispiel: Per Gruppenrichtlinie gesetzte Einstellungen für das Computerkonto.

reg query ^
HKLM\Software\Policies\Microsoft\Cryptography\AutoEnrollment ^
/v AEPolicy

Die Werte bedeuten im Einzelnen:

WertBeschreibungErgebnis
0x00000000 oder nicht vorhandenAutoEnrollment Prozess ist aktiviert
"Update Certificates that use certificates templates" ist deaktiviert
keine automatische Beantragung von Zertifikaten
keine automatische Erneuerung abgelaufener Zertifikate
keine automatische Abholung genehmigter Zertifikatanforderungen
keine automatische Archivierung widerrufener Zertifikate
0x00000001AutoEnrollment Prozess ist aktiviert
"Update Certificates that use certificates templates" ist aktiviert
"Renew expired certificates, update pending certificates, and remove revoked certificates" ist deaktiviert
automatische Beantragung von Zertifikaten
keine automatische Erneuerung abgelaufener Zertifikate
keine automatische Abholung genehmigter Zertifikatanforderungen
keine automatische Archivierung widerrufener Zertifikate
0x00000006AutoEnrollment Prozess ist aktiviert
"Update Certificates that use certificates templates" ist deaktiviert
"Renew expired certificates, update pending certificates, and remove revoked certificates" ist aktiviert
keine automatische Beantragung von Zertifikaten
automatische Erneuerung abgelaufener Zertifikate
automatische Abholung genehmigter Zertifikatanforderungen
automatische Archivierung widerrufener Zertifikate
0x00000007AutoEnrollment Prozess ist aktiviert
"Update Certificates that use certificates templates" ist aktiviert
"Renew expired certificates, update pending certificates, and remove revoked certificates" ist aktiviert
automatische Beantragung von Zertifikaten
automatische Erneuerung abgelaufener Zertifikate
automatische Abholung genehmigter Zertifikatanforderungen
automatische Archivierung widerrufener Zertifikate
0x00008000AutoEnrollment ist deaktiviertkeine automatische Beantragung von Zertifikaten
keine automatische Erneuerung abgelaufener Zertifikate
keine automatische Abholung genehmigter Zertifikatanforderungen
keine automatische Archivierung widerrufener Zertifikate

Trigger für die Auslösung des Autoenrollment-Prozesses

Die Auslöser für die Ausführung des Autoenrollment-Prozesses auf Domänenmitgliedern sind:

  • Bei Anmeldung des Benutzers (bei Computern, wenn sich das Computerkonto anmeldet, also beim Systemstart).
  • Per Timer alle 8 Stunden.
  • Bei einer Aktualisierung der Gruppenrichtlinien, vorausgesetzt, es gab eine Änderung.

Diese Einstellungen können über die Aufgabenplanung unter "Microsoft" – "Windows" – "CertificateServicesClient" eingesehen werden.

Manuelles Ausführen des Autoenrollment Prozesses

Möchte man nicht darauf warten, bis der Autoenrollment automatisch angestoßen wird, kann man ihn auch manuell starten. Die verschiedenen Wege, den Autoenrollment Prozess auszuführen, sind im Artikel "Manuelles Ausführen des Autoenrollment Prozesses" beschrieben.

Weiterführende Links:

Externe Quellen

44 Gedanken zu „Grundlagen manuelle und automatische Zertifikatbeantragung über Lightweight Directory Access Protocol (LDAP) und Remote Procedure Call / Distributed Common Object Model (RPC/DCOM) mit dem MS-WCCE Protokoll“

Kommentare sind geschlossen.

de_DEDeutsch