/****************************** * Commandes de base OpenSSL * * v1.1 du 04-12-06 * * Auteur : MICHEL S. * *****************************/ A / CREATION DE CERTIFICAT NUMERIQUE B / OPERATION SUR LES CLEFS ET LES CERTIFICATS C / MANUPULATION DE PKCS12 D / GESTION DE LA CA E / CHIFFREMENT SYNMETRIQUE F / CHIFFREMENT ASYSMETRIQUE (RSA) G / S/MIME A / CREATION DE CERTIFICAT NUMERIQUE 1 - Génération d'une clef RSA 4096 (CA) et protection de la clef par chiffrement AES 256 # openssl genrsa -aes256 -out private/ca.key -rand ./ 4096 2 - Création d'une Autorité de Certification racine ('CA ROOT') autosignée # openssl req -new -x509 -sha256 -days 3650 -key private/ca.key -out certs/ca.pem ==> Utilisation de SHA256 (SHA-1 est vulnérable) ==> L'utilisation de SHA256 nécéssite OpenSSL 0.9.8+. 3 - Requete de certificat user/serveur. (Ne pas oublier de commenter/décommenter dans openssl.conf suivant le type de certificat) # openssl req -sha256 -new -key private/mail.key -out certs/mail.req 4 - Signature du certificat par la CA # openssl ca -days 3650 -in certs/mail.req -out certs/mail.pem -notext 5 - Visualisation d'un certificat # openssl x509 -in certs/mail.pem -noout -text B / OPERATION SUR LES CLEFS ET LES CERTIFICATS 1 - Supprimer la passe phrase d'une clef privée # openssl rsa -in clefchiffre.key -out clefclair.key 2 - Visualisation une empreinte MD5 d'un certificat # openssl x509 -in certificat.crt -noout -fingerprint -md5 C / MANUPULATION DE PKCS12 1 - Creation d'un pkcs12 avec la chaine de certification (ca) # openssl pkcs12 -export -in mail.pem -inkey clefclair.pem -certfile ca.pem -out mailserver.p12 2 - Sortir une clef privée d'un P12 # openssl pkcs12 -nocerts -in fichier.p12 -out clefchiffre.key 3 - Sortir le certificat d'un P12 # openssl pkcs12 -clcerts -nokeys -in fichier.p12 -out certificat.crt D / GESTION DE LA CA 1 - Revoquer un certificat # openssl ca -revoke certificat.pem 2 - Creation d'une liste de revocation (CRL) d'un periode de validite de 30 jours # openssl ca -gencrl -out crl.pem -crldays 30 3 - Visualisation d'une CRL # openssl crl -in crl.pem -text E / CHIFFREMENT SYNMETRIQUE 1 - Chiffrement d'un fihier # openssl enc -aes256 -e -salt -in donneeclair.txt -out donneechiffre.enc 2 - Dechiffrement d'un fichier # openssl enc -aes256 -d -in fichierchiffre.enc -out fichierclair.txt F / CHIFFREMENT ASYSMETRIQUE (RSA) NB : Il est possible d'utiliser le commutateur -k pour spécifier le mot de passe. Il n'est pas souhaitable de l'utiliser ==> .bash_history 1 - Genere une clef publique deriver d'une clef privee # openssl rsa -in rsaclefprivee.pem -pubout -out rsaclefpublique.pem 2 - Chiffre avec une clef publique le fichier # openssl rsautl -encrypt -pubin -inkey rsaclefpublique.pem -in fichierclair.txt -out fichierchiffre.enc 3 - Dechiffre avec la clef privee le fichier # openssl rsautl -decrypt -inkey rsaclefprivee.pem -in fichierchiffre.enc -out fichierclair.txt 4 - Signe, avec la clef privee, le fichier fichier.txt en signature.sig # openssl rsautl -sign -inkey rsaclefprivee.pem -in fichier.txt -out signature.sig 5 - Verifie, avec la clef publique, la signature et sortie dans fichier.txt # openssl rsautl -verify -pubin -inkey rsaclefpublique.pem -in signature.bin -out fichier.txt G / S/MIME 1 - Genere un S/MIME, le certificat doit etre en 2eme parametre de -out # openssl smime -encrypt -aes256 -in mailclair.txt -out mailchiffre.enc certif.crt 2 - Dechiffre un S/MIME en specifiant le certificat du destinataire associe a la clef # openssl smime -decrypt -in mailchiffre.enc -recip certif.pem -inkey key.pem -out mailclair.txt 3 - Signe un mail en incorporant le certificat # openssl smime -sign -in mail.txt -signer certif.pem -inkey key.pem -out mail.sgn 4 - Verifie la signature d'un mail # openssl smime -verify -in mail.sgn -out mail.txt