Scénario suivant
- Une demande de certificat est envoyée à une autorité de certification.
- La demande de certificat échoue avec le message d'erreur suivant :
Error Parsing Request The request subject name is invalid or too long. 0x80094001 (-2146877439 CERTSRV_E_BAD_REQUESTSUBJECT)

L'autorité de certification consigne le Événement n° 22:
Active Directory Certificate Services could not process request 166086 due to an error: The request subject name is invalid or too long. 0x80094001 (-2146877439 CERTSRV_E_BAD_REQUESTSUBJECT). The request was for CN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. Additional information: Error Parsing Request

Causes possibles :
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.
- Le champ Demandeur (Subject Distinguished Name) dans la demande de certificat est identique à celui de l'autorité de certification.
- Un nom distinct relatif (RDN) demandé dans le champ Demandeur (Subject Distinguished Name) est plus long que ce qui est autorisé.
- Une demande de certificat ne contient aucune information sur le sujet (Subject Distinguished Name vide et pas de Subject Alternative Name).
Détails : le champ Demandeur (Subject) dans la demande de certificat est identique à celui de l'autorité de certification.
L'organisme de certification compare son propre nom de demandeur (Subject) avec celui du demandeur et rejette les demandes de certificat qui demandent le nom de l'organisme de certification.
Détails : un nom distinct relatif (RDN) demandé dans le champ Demandeur (Subject Distinguished Name) est plus long que ce qui est autorisé.
L'erreur peut également se produire si l'un des Noms Distingués Relatifs (RDN) demandés dans le champ Demandeur est trop long. La longueur des RDN peut être affichée à l'aide de la commande de ligne de commande suivante :
certutil -v -dump {Zertifikatanforderung}

Microsoft Active Directory Certificate Services limite la longueur pour les RDN demandés sur l'autorité de certification (dans le cas du CN à 64 caractères. Voir aussi l'article „Noms distinctifs relatifs (RDN) autorisés dans le Subject Distinguished Name (DN) des certificats délivrés„). Ce comportement peut toutefois être empêché par la commande de ligne de commande suivante :
certutil -setreg ca\EnforceX500NameLengths 0

Il faut ensuite redémarrer le service d'autorité de certification pour que les modifications soient prises en compte.
Dans la mesure où le Infrastructure à clés publiques commune il faut savoir que celui-ci limite la longueur des RDN (Relative Distinguished Names) à 64 caractères.
La commande de ligne de commande suivante permet de vérifier si la restriction est actuellement activée :
certutil -getreg ca\EnforceX500NameLengths

Cette restriction ne s'applique pas au Subject Alternative Name (SAN). Selon le type de certificat (p. ex. pour SSL), il peut être utile, voire nécessaire (voir RFC 2818) de privilégier le Subject Alternative Name par rapport au Common Name.
Détails : une demande de certificat ne contient aucune information sur le sujet (Subject Distinguished vide et pas de Subject Alternative Name).
Si une demande de certificat ne contient aucune information d'identité, ce message d'erreur apparaît également.
Ce phénomène peut également se produire en relation avec les systèmes de Mobile Device Management (MDM), lorsqu'un utilisateur valide n'est pas attribué à un appareil géré. Concrètement, j'ai observé ce comportement avec Gestion de la mobilité d'entreprise Baramundi observer.
On peut le déterminer en Exportation de la demande de certificat à partir de la base de données des autorités de certification puis afficher les données brutes codées ASN.1 à l'aide de la commande suivante.
certutil -asn {Dateiname}

A titre de comparaison, une demande de certificat contenant un commonName vide.

Liens complémentaires :
- Génération d'une demande de certificat conforme à la RFC 2818 pour les certificats SSL
- Description des paramètres de configuration nécessaires pour le profil de certificat "Common PKI".
- Noms distinctifs relatifs (RDN) autorisés dans le Subject Distinguished Name (DN) des certificats délivrés
Sources externes
- Request for Certificate Is Denied and a „The Request Subject Name Is Invalid or Too Long“ Error Message Occurs (Microsoft)
- RFC 2818 - HTTP sur TLS (Internet Engineering Task Force)
Les commentaires sont fermés.