Selon le manuel man x509, le format des certificats est :
Format PEM : Fichier ASCII et il y a '-----BEGIN CERTIFICATE-----'
Format DER : Format binaire

Voici quelques commandes permettant de gérer les certificats électroniques.

Créer un couple CSR+Clé privée en RSA :
* Affiche le CSR à l'écran :
openssl req -newkey rsa:2048 -keyout mail.fournier38.fr.key -nodes -subj /C=FR/O=FOURNIER38/CN=mail.fournier38.fr
* Ecrit le CSR dans un fichier :
openssl req -newkey rsa:2048 -keyout mail.fournier38.fr.key -out mail.fournier38.fr.csr -nodes -subj /C=FR/O=FOURNIER38/CN=mail.fournier38.fr
Créer un couple CSR+Clé privée en courbes elliptiques :
* Affiche le CSR à l'écran :
openssl req -nodes -newkey ec -pkeyopt ec_paramgen_curve:secp384r1 -keyout server.domain.tld.key -subj /C=FR/O=FOURNIER38/CN=server.domain.tld.fr

Convertir un certificat .p12/.pfx (format PKCS12) en PEM (demande du mot de passe d'import)
Ce fichier ne contient pas la clé privée
openssl pkcs12 -clcerts -nokeys -in certificat.p12 -out certificat.pem
Sortir la clé privée d'un fichier .p12/.pfx en PEM (demande du mot de passe d'import)
openssl pkcs12 -in certificat.p12 -nocerts -nodes -out certificat.key
Créer le .p12/.pfx
openssl pkcs12 -export -in certificat.pem -inkey certificat.key -out certificat.p12

Convertir un fichier .cer (format DER) en .pem
openssl x509 -inform der -in certificate.cer -out certificate.pem

Affichage textuel des données d'un certificat :
openssl x509 -text -in certificat.pem

Affiche le sujet (Propriétaire du certificat au format LDAP)
openssl x509 -subject -noout -in certificat.pem

Affiche le mail du propriétaire du certificat
openssl x509 -email -noout -in certificat.pem

Calcule de hash du certificat de l'Autorité d'Enregistrement
openssl x509 -hash -noout -in CACNRS/CNRS.crt
cf4ba8c8

Convertir une liste de revocation du format DER en format PEM
openssl crl -in CNRS-Standard.crl -inform DER -outform PEM -out CNRS-Standard.crl.pem

Vérification de certificat
Pour recupérer une liste de revocation, il faut la prendre dans un certificat
openssl x509 -in certificat.pem -text (Chercher X509v3 CRL Distribution Points:)
Il faut avoir un répertoire CA qui contient les liens des hash des AE (avec un .0) vers les certificat des AE, ainsi que les liens (avec un .r0) vers les CRL (au format PEM) portant le même hash que leur AE d'origine (à générer par ln -s CNRS-Standard.crt `openssl x509 -hash -in CNRS-Standard.crt -noout`.0) :

CNRS-Standard.crt
CNRS.crt
cf4ba8c8.0 -> CNRS.crt
756f7968.0 -> CNRS-Standard.crt
CNRS-Standard.crl.pem
756f7968.r0 -> CNRS-Standard.crl.pem

openssl verify -verbose -CApath CA/ -crl_check certificat.pem
error 23 at 0 depth lookup:certificate revoked
OU
OK

Vérifier qu'un certificat correspond bien avec son fichier de clé :
openssl x509 -noout -modulus -in server.pem | openssl md5 ; openssl rsa -noout -modulus -in server.key | openssl md5

Certains services (comme stunnel) souhaitent avoir un seul fichier de certificat, contenant le certificat serveur et la chaîne de certification. Utiliser la commande : cat cert.pem cert-chain.pem > cert-combined.pem

Pour lire le contenu d'une demande de certificat (CSR), utiliser la commande openssl req -in server.csr -noout -text