Comment vérifier une CSR
- Collez la demande, de
-----BEGIN CERTIFICATE REQUEST-----jusqu’à la ligne END correspondante, ou déposez le fichier.csr/.reqsur la zone. - Vérifiez Sujet, Noms alternatifs du sujet (SAN) et Clé publique sur la fiche.
- Vous pouvez aussi coller la clé privée sous la CSR. Sa fiche n’affiche que le type et la taille de la clé, ainsi qu’un Pin SPKI SHA-256 à comparer avec celui de la CSR.
- Utilisez Copier le PEM ou Télécharger le .der si le portail de l’AC veut la demande sous une autre forme.
Ce que contient une demande de signature de certificat
Une CSR (PKCS#10) est petite : un nom de sujet, une clé publique, des attributs facultatifs et une signature sur l’ensemble. Le décodeur les présente ainsi :
| Champ | Remarques |
|---|---|
| Sujet | C=US, O=Example Corp, CN=app.example.com. Pour les certificats à validation de domaine, l’AC ne garde que ce qu’elle a validé : les champs d’organisation sont donc généralement supprimés. |
| Version | Toujours v1 pour PKCS#10. |
| Clé publique | Type et taille, par ex. RSA 2048 ou EC P-256. C’est la partie qui se retrouve telle quelle dans le certificat. |
| Algorithme de signature | Généralement sha256WithRSAEncryption ou ecdsa-with-SHA256. |
| Noms alternatifs du sujet, Utilisation de la clé, Utilisation étendue de la clé | Extensions demandées. Une AC peut les respecter, les réécrire ou les supprimer. |
| Attributs | Autres attributs PKCS#9. Un challengePassword est signalé comme défini, avec sa valeur masquée. |
| Pin SPKI SHA-256 | Hachage de la clé publique. Le certificat émis aura le même pin. |
Les erreurs à repérer avant l’envoi
- Aucun nom alternatif du sujet (SAN). Les navigateurs ignorent le CN pour comparer les noms d’hôte. Les AC publiques recopient généralement le CN dans le SAN pour vous ; les AC internes souvent pas, et le résultat est un certificat qui échoue avec une erreur de nom.
- Un nom manquant.
www.example.cometexample.comsont deux entrées distinctes. Un wildcard*.example.comne couvre pasexample.comlui-même. - Clé trop petite. Les AC reconnues publiquement exigent au moins du RSA 2048 bits. Une CSR RSA 1024 sera rejetée.
- Mauvaise clé. Une CSR générée sur un autre serveur, ou à partir d’un ancien fichier de clé, produit un certificat que votre serveur ne peut pas utiliser. Comparez les pins.
- Fautes de frappe dans le sujet. Peu coûteuses à corriger maintenant, chères après une validation OV ou EV.
L’outil lit la CSR mais ne vérifie pas son auto-signature. Une demande tronquée ou modifiée peut quand même se décoder : lancez openssl req -verify en cas de doute.
Créer et vérifier une CSR avec OpenSSL
Une nouvelle clé RSA et une CSR avec deux noms d’hôte en une seule étape (OpenSSL 1.1.1 ou plus récent pour -addext) :
openssl req -new -newkey rsa:2048 -nodes -keyout app.key -out app.csr \
-subj "/CN=app.example.com" \
-addext "subjectAltName=DNS:app.example.com,DNS:www.app.example.com"
Vérifiez-la, signature comprise, et confirmez qu’elle correspond à la clé :
openssl req -in app.csr -noout -text -verify
diff <(openssl req -in app.csr -noout -pubkey) <(openssl pkey -in app.key -pubout) && echo "key matches"
La ligne -verify affiche Certificate request self-signature verify OK pour une demande intacte. D’autres recettes en ligne de commande sont sur la page OpenSSL.
À quoi ressemble une CSR en Base64
Une CSR est du DER enveloppé dans du PEM, comme un certificat. Une demande RSA-2048 fait environ 650 à 700 octets de DER, si bien que son Base64 commence par MIIC ; une demande EC P-256 avoisine les 300 octets et commence par MIIB. Si ce que vous avez reçu commence par MIIC mais que l’en-tête indique CERTIFICATE, c’est un certificat. Collez-le plutôt dans le décodeur de certificats ; le même widget gère les deux et vous dit lequel il a trouvé.
FAQ
Comment vérifier quels domaines figurent dans une CSR ?
Collez la CSR et regardez Noms alternatifs du sujet (SAN). C’est cette liste qui détermine les noms d’hôte couverts par le certificat ; les navigateurs ignorent le CN du sujet. Si la ligne est absente, la demande ne contient pas d’extension SAN.
Comment savoir si une CSR correspond à ma clé privée ?
Collez la CSR et la clé privée ensemble. Si les deux fiches affichent le même Pin SPKI SHA-256, elles partagent une paire de clés. Avec OpenSSL, comparez openssl req -in app.csr -noout -pubkey avec openssl pkey -in app.key -pubout.
Une CSR contient-elle la clé privée ?
Non. Une CSR contient la clé publique, les noms demandés et une signature faite avec la clé privée pour prouver que vous la détenez. Vous pouvez l’envoyer sans risque à une AC ; la clé privée, elle, doit rester sur le serveur.
Que signifie NEW CERTIFICATE REQUEST dans l'en-tête ?
C’est un ancien libellé utilisé par keytool de Java et certains outils Windows. Le contenu est la même structure PKCS#10, et le décodeur le lit comme n’importe quelle autre CSR.