Table des matières
Memento OpenSSL
Source http://www.vincentliefooghe.net/node/113
Pour chiffrement de fichier voir scrypt
1 Si DSA :
openssl dsaparam -out dsaparam.pem 4096
2 Génération de la clef privée:
Si RSA
#openssl genrsa -des3 -out macle.key 2048 openssl genrsa -out macle.key 2048
Note : avec l'option -des3 openssl demande une passphrase
Si DSA
openssl gendsa -des3 -out macle.key dsaparam.pem
Si Elliptic Curve key
#openssl ecparam -genkey ....
N'oubliez pas de noter la pass phrase, elle sera utilisée par la suite
3 Génération d'un certificat auto-signé
openssl req -new -x509 -days 3650 -key macle.key -sha256 -extensions v3_ca -out macle.crt
Génération de la paire de certificat + clef en une seule ligne
openssl req -nodes -new -x509 -keyout server.key -out server.cert
4 Génération d'une demande de certificat (CSR)
Si on ne veut pas générer un certificat auto-signé (pas reconnu dans les navigateurs et clients), il faut généralement passer par une étape intermédiaire : générer un CSR (Certificate Signing Request) qui sera signé par une autorité de certification (les sociétés telles que Verisign, Thwate & Co). On peut aussi utiliser son propre certificat auto-signé comme certificat d'autorité par la suite.
openssl req -sha256 -new -key macle.key -out macle.csr -days 3650
5 Signature d'un CSR
On va signer la demande de certificat (.csr) avec la clé et le certificat de l'autorité de certification :
openssl ca -in macle.csr -out macle.crt -keyfile ca.key -cert ca.crt -days 3650 -extensions usr_cert -notext -md sha256
Il est parfois nécessaire de créer un fichier index.txt et serial (selon les O.S.). Par exemple sur un Linux RHEL / CentOS :
touch /etc/pki/CA/index.txt echo 0000 > /etc/pki/CA/serial
6 Vérification
On peut vérifier le certificat de plusieurs manières :
avec openssl verify, qui vérifie son DN et sa validité
avec openssl x509, qui dump le contenu du certificat
on peut ajouter une option pour vérifier le “chaining” avec le certificat de l'autorité :
¢ openssl verify -CAfile ca.crt macle.crt macle.crt: OK
Autre
Suppression de la pass-phrase d'une clé
$ cp macle.key macle.key.avecpass $ openssl rsa -in macle.key.avecpass -out maclesanspass.key Enter pass phrase for macle.key.avecpass: writing RSA key
Conversion en format PKCS12
Le format PKCS12 contient le certificat et la clé ; il est parfois utilisé pour l'import d'un certificat dans des keystore Java ou par des utilitaires Windows.
Il faut disposer de la clé privé et du certificat pour les exporter au format pkcs12 :
openssl pkcs12 -export -inkey macle.key -in macle.crt -name AliasDeLaCle -out macle.p12
Conversion
Convert PEM to PKCS12
openssl pkcs12 -export -inkey privatekey.pem -in cert.pem -certfile cacert.pem -out bundle.p12
Convert PKCS12 file to PEM (you can then chop the files up with a text editor)
openssl pkcs12 -nodes -in bundle.p12 -out bundle.pem
Convert DER (binary) to PEM
openssl x509 -inform der -in plop.local.cer -out plop.local.pem
