Folgendes Szenario angenommen:
- Die Zertifizierungsstelle kann keine Zertifikate ausstellen und/oder
- Die Zertifizierungsstelle kann keine Sperrlisten ausstellen.
- Es wird mindestens eine der folgende Fehlermeldungen protokolliert:
Ereignis-ID: 53 (Microsoft-Windows-CertificationAuthority)
Active Directory Certificate Services denied request 12345 because An attempt was made to open a Certification Authority database session, but there are already too many active sessions. The server may need to be configured to allow additional sessions. 0x8009400f (-2146877425 CERTSRV_E_NO_DB_SESSIONS). The request was for CN=Rudi Ratlos. Additional information: Denied by Policy Module
Ereignis-ID: 130 (Microsoft-Windows-CertificationAuthority)
Active Directory Certificate Services could not create a certificate revocation list. An attempt was made to open a Certification Authority database session, but there are already too many active sessions. The server may need to be configured to allow additional sessions 0x8009400f (-2146877425). This may cause applications that need to check the revocation status of certificates issued by this CA to fail. You can recreate the certificate revocation list manually by running the following command: "certutil -CRL". If the problem persists, restart Certificate Services.
Beantragende Clients erhalten womöglich folgende Fehlermeldung:
CCertRequest::Submit: Version store out of memory (cleanup already attempted) 0xc800042d (ESE:-1069 JET_errVersionStoreOutOfMemory)
Ursache
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.
Beide Fehler können auftreten, wenn zu viele gleichzeitige Sitzungen auf der Zertifizierungsstellen-Datenbank aktiv sind. Jede Transaktion, welche die Zertifizierungsstelle selbst durchführt, entspricht einer Datenbanksitzung, ebenso Aufrufe mit certutil.exe und anderen Anwendungen gegen die Zertifizierungsstellen-Datenbank.
Die Maximale Anzahl gleichzeitiger Zugriffe auf die Zertifizierugsstellen Datenbank kann über zwei Registry-Werte unterhalb des folgenden Schlüssels konfiguriert werden:
HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\
Wert | Standardwert | Beschreibung |
---|---|---|
DBSessionCount | 0x64 (100) seit Windows Server 2008 | Konzept der zugrundeliegenden JET-Datenbank. Bestimmt den Parameter JET_paramMaxSessions, welchen der CA-Dienst auf der Datenbank setzt. Sind keine Sitzungen mehr verfügbar, wird JetBeginSession mit dem Fehler JET_errOutOfSessions fehlschlagen. |
DBMaxReadSessionCount | Nicht gesetzt. Bestimmt sich aus DBSessionCount geteilt durch 10. | Konzept der Zertifizierungsstelle. Bestimmt die maximale Anzahl von gleichzeitigen lesenden (ICertView interface) Datenbanksitzungen. |
Beide Werte sollten nur bei konkretem Bedarf verändert werden. Sinnvoller ist es, die Ursache für die vielen offenen Datenbanksitzungen zu ermitteln und abzustellen.
Bevorzugt sollte der DBSessionCount Wert angepasst werden. Eine Erhöhung auf ca. 250 bis 500 sollte die gleichzeitige Verarbeitung von ca. 1.000 Zertifikatanfragen pro Sekunde ermöglichen.
Das Setzen/Verändern von DBMaxReadSessionCount ist in der Regel nicht sinnvoll, da er sich automatisch anhand des Wertes von DBSessionCount ermittelt.
Eine Änderung der Werte wird erst nach einem Neustart des Zertifizierungsstellen-Dienstes effektiv.
Auch das Öffnen (oder geöffnet lassen in einer inaktiven Sitzung) der Zertifizierungsstellen-Verwaltungskonsole erhöht die Anzahl der aktiven (lesenden) Datenbanksitzungen.
Die Anzahl der aktiven Datenbanksitzungen kann auch durch Deaktivieren des "Windows Default" Exit Moduls (wenn es nicht verwendet wird) reduziert werden.
Beide Werte erzeugen bei Überschreitung den gleichen Fehlercode, egal welcher tatsächlich überschritten wurde.
Weiterführende Links:
Externe Quellen
- JetBeginSession Function (Microsoft)
- ADCS sessions (Microsoft Technet Foren)
- Tweaking ADCS performance (Microsoft)
- Tuning CA Database Performance (Microsoft)
- ICertView interface (certview.h) (Microsoft)
- Troubleshooting Version Store issues – JET_errVersionStoreOutOfMemory (Microsoft)
3 Gedanken zu „Die Ausstellung von Zertifikaten oder Sperrlisten schlägt fehl mit Fehlercode CERTSRV_E_NO_DB_SESSIONS“
Kommentare sind geschlossen.