TLS --- Retrouver & valider les infos d'une CSR (OpenSSL)
Introduction
Pré‑requis : OpenSSL ≥ 1.1.1 (commandes compatibles OpenSSL 3).
Fichier attendu : PEM (-----BEGIN CERTIFICATE REQUEST-----) ou DER binaire.
1) Afficher tout
# Vue complète, lisible
openssl req -in votredemande.csr -noout -text | less
2) Obtenir des exxtraits rapides (one‑liners)
Sujet (DN)
# Sujet en une ligne
openssl req -in votredemande.csr -noout -subject -nameopt RFC2253
Subject Alternative Names (SAN)
# Afficher uniquement les SAN
openssl req -in votredemande.csr -noout -text \
| awk '/Subject Alternative Name/{f=1; next} /X509v3/{f=0} f'
Algorithme & taille de clé publique
# Détail lisible de la clé (avec algo, taille/curve)
openssl req -in votredemande.csr -noout -pubkey \
| openssl pkey -pubin -text -noout
Algorithme de signature de la CSR
openssl req -in votredemande.csr -noout -text | grep -m1 "Signature Algorithm"
Empreinte (hash) du SPKI --- utile pour comparer clés/CSR de façon agnostique (RSA/EC)
# Empreinte de la clé publique contenue dans la CSR
openssl req -in votredemande.csr -pubkey -noout -outform DER | openssl dgst -sha256
# Empreinte de la clé privée correspondante (via sa pub)
openssl pkey -in votrecleprivee.key -pubout -outform DER | openssl dgst -sha256
# => les deux empreintes doivent être IDENTIQUES
3) Vérifications utiles
Type/format du fichier
# CSR PEM ou DER ?
file votredemande.csr
# Si DER, utiliser :
openssl req -in votredemande.csr -inform DER -noout -text | less
CSR valide (signature interne OK)
openssl req -in votredemande.csr -noout -verify
# -> "verify OK" attendu
CSR ↔ clé privée (paire)
# Méthode robuste (algo‑agnostique) : comparer les empreintes SPKI (voir plus haut)
SAN présents ? (indispensables en TLS moderne)
openssl req -in votredemande.csr -noout -text | grep -q "Subject Alternative Name" \
&& echo "SAN: OK" || echo "SAN: ABSENTS"
4) Conversions
# DER -> PEM
openssl req -in demande.der -inform DER -out demande.csr.pem -outform PEM
# PEM -> DER
openssl req -in demande.csr.pem -out demande.der -outform DER
5) Dépannage express
- Erreur unable to load X509 request → mauvais format : ajouter -inform DER (si binaire) ou vérifier que le fichier commence par -----BEGIN CERTIFICATE REQUEST-----.
- Vous avez un certificat, pas une CSR (en‑tête BEGIN CERTIFICATE) :
openssl x509 -in certificat.pem -noout -text
- SAN manquants : regénérer la CSR avec l'extension subjectAltName (le CN seul est ignoré par les navigateurs modernes).
6) Bloc "copier/coller" d'audit rapide
CSR=votredemande.csr
KEY=votrecleprivee.key
echo "== Sujet (RFC2253) =="
openssl req -in "$CSR" -noout -subject -nameopt RFC2253
echo "== SAN =="
openssl req -in "$CSR" -noout -text \
| awk '/Subject Alternative Name/{f=1; next} /X509v3/{f=0} f'
echo "== Clé publique (algo/taille/curve) =="
openssl req -in "$CSR" -noout -pubkey | openssl pkey -pubin -text -noout
echo "== Algo de signature de la CSR =="
openssl req -in "$CSR" -noout -text | grep -m1 "Signature Algorithm"
echo "== Vérification de la CSR =="
openssl req -in "$CSR" -noout -verify
echo "== Empreinte SPKI CSR =="
openssl req -in "$CSR" -pubkey -noout -outform DER | openssl dgst -sha256
if [ -f "$KEY" ]; then
echo "== Empreinte SPKI de la clé privée (via pub) =="
openssl pkey -in "$KEY" -pubout -outform DER | openssl dgst -sha256
fi
↑ Haut de page