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