L'émission de certificats ou de listes de révocation échoue avec le code d'erreur CERTSRV_E_NO_DB_SESSIONS

Supposons le scénario suivant :

  • L'autorité de certification ne peut pas délivrer de certificats et/ou
  • L'autorité de certification ne peut pas émettre de listes de blocage.
  • Au moins un des messages d'erreur suivants est consigné :

ID de l'événement : 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

ID de l'événement : 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.

Les clients demandeurs peuvent recevoir le message d'erreur suivant :

CCertRequest::Submit: Version store out of memory (cleanup already attempted) 0xc800042d (ESE:-1069 JET_errVersionStoreOutOfMemory)

Cause

Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.

Ces deux erreurs peuvent survenir lorsqu'un trop grand nombre de sessions simultanées sont actives sur la base de données de l'autorité de certification. Chaque transaction effectuée par l'autorité de certification elle-même correspond à une session de la base de données, de même que les appels avec certutil.exe et autres applications contre la base de données de l'autorité de certification.

Le nombre maximal d'accès simultanés à la base de données des autorités de certification peut être configuré à l'aide de deux valeurs de registre situées sous la clé suivante :

HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\
ValeurValeur par défautDescription
DBSessionCount0x64 (100) depuis Windows Server 2008Concept de la base de données JET sous-jacente. Détermine le paramètre JET_paramMaxSessions que le service CA définit sur la base de données. S'il n'y a plus de sessions disponibles, le paramètre JetBeginSession échouer avec l'erreur JET_errOutOfSessions.
DBMaxReadSessionCountN'est pas défini. Déterminé par DBSessionCount divisé par 10.Concept de l'autorité de certification. Détermine le nombre maximum de lectures simultanées (Interface ICertView) Sessions de base de données.

Ces deux valeurs ne devraient être modifiées qu'en cas de besoin concret. Il est plus judicieux de déterminer la cause des nombreuses sessions ouvertes de la base de données et d'y remédier.

Il est préférable d'adapter la valeur DBSessionCount. Une augmentation à environ 250 à 500 devrait permettre le traitement simultané d'environ 1.000 demandes de certificats par seconde.

En règle générale, il n'est pas utile de définir/modifier DBMaxReadSessionCount, car il se détermine automatiquement en fonction de la valeur de DBSessionCount.

Une modification des valeurs ne sera effective qu'après un redémarrage du service d'autorité de certification.

De même, le fait d'ouvrir (ou de laisser ouverte dans une session inactive) la console de gestion de l'autorité de certification augmente le nombre de sessions de base de données actives (en lecture).

Le nombre de sessions actives de la base de données peut également être déterminé par Désactiver le module „Windows Default“ Exit (lorsqu'il n'est pas utilisé) peut être réduit.

Les deux valeurs génèrent le même code d'erreur lorsqu'elles sont dépassées, quelle que soit celle qui a été effectivement dépassée.

Liens complémentaires :

Sources externes

Les commentaires sont fermés.

fr_FRFrançais