Certificats
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
openssl pkcs12 -export -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES -nomac -in certificat-combined.pem -inkey certificat.key -out certificat.pfx (pour être compatible Windows et avoir toute la chaîne de certification)
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 revokedOU
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