🔐 OpenSSL

Certificats, clés, conversions PEM/PFX

Aide-mémoire

OpenSSL — Aide-mémoire

Inspecter un certificat

# Lire un certificat PEM
openssl x509 -in cert.pem -noout -text

Dates de validité seulement

openssl x509 -in cert.pem -noout -dates

Vérifier un certificat distant

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \ | openssl x509 -noout -text

Vérifier la date d'expiration d'un domaine

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \ | openssl x509 -noout -dates

Générer une clé privée RSA

# Clé RSA 4096 bits (recommandé)
openssl genrsa -out private.key 4096

Clé RSA avec passphrase

openssl genrsa -aes256 -out private.key 4096

Clé EC (plus légère, aussi sécurisée)

openssl ecparam -name prime256v1 -genkey -noout -out ec.key

CSR — Demande de signature de certificat

# Générer clé + CSR en une commande
openssl req -new -newkey rsa:4096 -nodes \
  -keyout private.key \
  -out demande.csr \
  -subj "/C=FR/ST=IDF/L=Paris/O=MonEntreprise/CN=example.com"

CSR avec SAN (Subject Alternative Names)

openssl req -new -key private.key -out demande.csr \ -subj "/CN=example.com" \ -addext "subjectAltName=DNS:example.com,DNS:www.example.com,IP:192.168.1.1"

Vérifier le contenu d'un CSR

openssl req -in demande.csr -noout -text

Certificat auto-signé

# Certificat auto-signé 1 an
openssl req -x509 -newkey rsa:4096 -nodes \
  -keyout private.key \
  -out cert.pem \
  -days 365 \
  -subj "/C=FR/O=Test/CN=example.com"

Auto-signé avec SAN (requis par les navigateurs modernes)

openssl req -x509 -newkey rsa:4096 -nodes \ -keyout private.key \ -out cert.pem \ -days 365 \ -subj "/CN=example.com" \ -addext "subjectAltName=DNS:example.com,DNS:*.example.com"

Conversions de formats

PEM → PFX/P12 (Windows)

openssl pkcs12 -export \
  -out certificat.pfx \
  -inkey private.key \
  -in cert.pem \
  -certfile chain.pem \
  -passout pass:MonMotDePasse

PFX/P12 → PEM + KEY (Linux)

# Extraire le certificat
openssl pkcs12 -in certificat.pfx -nokeys -out cert.pem \
  -passin pass:MonMotDePasse

Extraire la clé privée (sans passphrase)

openssl pkcs12 -in certificat.pfx -nocerts -nodes -out private.key \ -passin pass:MonMotDePasse

Extraire la chaîne CA

openssl pkcs12 -in certificat.pfx -cacerts -nokeys -out chain.pem \ -passin pass:MonMotDePasse

DER ↔ PEM

# DER → PEM
openssl x509 -inform der -in cert.der -out cert.pem

PEM → DER

openssl x509 -outform der -in cert.pem -out cert.der

Concaténer une chaîne

# Chaîne complète (cert + intermédiaires)
cat cert.pem intermediate.pem root.pem > fullchain.pem

Vérifications

# Vérifier que clé et certificat correspondent (les MD5 doivent être identiques)
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa  -noout -modulus -in private.key | openssl md5

Vérifier un certificat par rapport à une CA

openssl verify -CAfile ca.pem cert.pem

Vérifier la chaîne complète

openssl verify -CAfile root.pem -untrusted intermediate.pem cert.pem

Chiffrement symétrique

# Chiffrer un fichier
openssl enc -aes-256-cbc -pbkdf2 -in fichier.txt -out fichier.enc

Déchiffrer

openssl enc -d -aes-256-cbc -pbkdf2 -in fichier.enc -out fichier.txt

Hash & Empreinte

# SHA256 d'un fichier
openssl dgst -sha256 fichier.txt

Empreinte d'un certificat

openssl x509 -in cert.pem -noout -fingerprint -sha256
🔧 Ouvrir tools.rdr-it.com — application complète →

Plus de 40 outils AdminSys gratuits · SSL · DNS · Docker · Nginx · SSH · Mermaid · et plus