{{tag>Brouillon openssl TLS}} = 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