Die Veröffentlichtung einer Zertifikatsperrliste (CRL) schlägt fehl mit der Fehlermeldung "Directory object not found. 0x8007208d (WIN32: 8333 ERROR_DS_OBJ_NOT_FOUND)"

Folgendes Szenario angenommen:

  • Man versucht, auf einer Zertifizierungsstelle eine neue Zertifikatsperrliste (CRL) zu veröffentlichen.
  • Die Zertifizierungsstelle ist für die Veröffentlichung der Zertifikatsperrlisten ins Active Directory (LDAP CDP) konfiguriert.
  • Die Veröffentlichung der Zertifikatsperrliste schlägt mit folgender Fehlermeldung fehl:
Directory object not found. 0x8007208d (WIN32: 8333 ERROR_DS_OBJ_NOT_FOUND)

Mitunter ist es erforderlich, dass ein von einer Zertifizierungsstelle ausgestelltes Zertifikat bereits vor dessen Ablaufdatum aus dem Verkehr gezogen werden muss. Um dies zu ermöglichen, hält eine Zertifizierungsstelle eine Sperrliste vor. Hierbei handelt es sich um eine signierte Datei mit einem relativ kurzen Ablaufdatum, welches in Kombination mit dem Zertifikat zur Überprüfung der Gültigkeit herangezogen wird.

In der Ereignisanzeige der Zertifizierungsstelle wird das Ereignis Nr. 74 protokolliert.

 Active Directory Certificate Services could not publish a Base CRL for key 1 to the following location on server DC01.intra.adcslabor.de: ldap:///CN=ADCS Labor Issuing CA 1(1),CN=ADCS Labor Issuing CA 1,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=intra,DC=adcslabor,DC=de.  Directory object not found. 0x8007208d (WIN32: 8333 ERROR_DS_OBJ_NOT_FOUND).
ldap: 0x20: LDAP_NO_SUCH_OBJECT: 0000208D: NameErr: DSID-03100288, problem 2001 (NO_OBJECT), data 0, best match of:
'CN=ADCS Labor Issuing CA 1,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=intra,DC=adcslabor,DC=de'

Lösung

Wenn die Veröffentlichung einer Zertifikatsperrliste (Certificate Revocation List, CRL) mit dem Fehler ERROR_DS_OBJ_NOT_FOUND fehlschlägt, bedeutet dies, dass das entsprechende Objekt im Active Directory nicht gefunden werden kann.

Dies kann vorkommen, wenn die Konfiguration der Zertifizierungsstelle (CA) vom Standard wärend der Installation abweicht. Während der Installation der Zertifizierungsstelle wird ein Objekt unterhalb des CDP Containers erzeugt, welches identisch zum (unqualifizierten, also dem NETBIOS-) Namen des Servers ist, auf welchem die CA installiert wurde. Der Servername wird durch das Token SERVERSHORTNAME, in Kurzform %2 abgebildet.

Es ist durchaus sinnvoll, dies vor Inbetriebnahme einer Zertifizierungsstelle zu ändern, um den Servernamen nicht in die ausgestellten Zertifikate zu schreiben.

Als Ersatz für das SERVERSHORTNAME Token bietet sich das CANAME Token an, welches den Common Name der Zertifizierungsstelle spezifiziert. Dieser wird sich während der Lebensdauer der Zertifizierungsstelle nicht ändern.

Das CANAME Token wird mit der Variable %3 beschrieben.

Das Sperrlistenobjekt kann durch manuelles Hochladen der Sperrliste ins Active Directory erfolgen. Hierzu verwendet man Certutil -dspublish mit dem -f (force) Argument.

certutil -f -dspublish <Dateiname-der-Sperrliste>

Hierzu benötigt man Schreibrechte im CDP Container unter Public Key Services in der Configurartion Partition. Dieses Recht haben üblicherweise Organisations-Administratoren (Enterprise Administrator).

Ebenso muss in der Sperrlistendatei eine Erweiterung namens "Published CRL Locations" vorhanden sein, welche während der Veröffentlichung von certutil ausgelesen wird, um den korrekten Pfad für die Sperrliste zu ermitteln.

Die Published CRL Locations Erweiterung wird von certutil ausgelesen und zur korrekten Hinterlegung der Sperrliste im Active Directory verwendet

Das Vorhandensein dieser Erweiterung wird durch die Option "Include in all CRLs" in der Konfiguration der CDP-Erweiterung auf der Zertifizierungsstelle gesteuert.

Die Include in all CRLs Option bewirkt, dass die Published CRL Locations Erweiterung in eine Sperrliste geschrieben wird.

Weiterführende Links: