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

openssl x509 -in certificat.pem -noout -text

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

⬆️ Retour en haut de la page