Chiffrer avec OpenSSL

Chiffrer et déchiffrer avec RSA

  • Nous allons chiffrer et déchiffrer un fichier de petite taille avec du chiffrement asymétrique.

D'abord, créons notre paire de clés :

Openssl genrsa 4096 ­-aes256 ­-out > clef_secret.pem

Extraction de la clé publique qui sera utilisé lors du chiffrement :

openssl rsa ­-in clef_secret.pem -pubout -out public.pem

Voici notre fichier en question :

echo "Message lisible!" > fichier.txt

Chiffrons-le !

Openssl rsautl ­-encrypt ­-pubin ­-inkey public.pem ­-in fichier.txt -­out mon-fichier.crypted

Déchiffrons-le !

openssl rsautl -­decrypt ­-inkey  secret.pem ­-in mon-fichier.crypted ­-out mon-fichier.txt

Gestion d'une autorité de certificat

  • Générer la clé privé de l'AC :

Elle sera en RSA 2048 et protection par chiffrement aes256 :

openssl genrsa -aes256 -out key.pem 2048

Nous avons maintenant une paire de clé publique et privé

  • Générerle certificat autocertifié de l'AC :
openssl req -new -key key.pem -days 3650 > certificat.csr
  • Signer la demande de certificat pour 5 ans :
openssl x509 -req -days 1825 -in certificat.csr -signkey key.pem -out certificat+cle_privee.crt

Générer une paire de clé publique / privé

rien de plus simple :

openssl genrsa -out private-key.pem 2048

Pour récupérer la clé publique :

openssl rsa -pubout -in private-key.pem -out public-key.pem

Fournir des certificats au format pkcs12

Expliquer ce format

openssl pkcs12 -export -inkey key.pem -in cert.crt -out cert.pk12
  • Lecture de la clé
openssl pkcs12 -in cert.pk12 -info

D'autres commandes

  • Télécahrger le certificat d'un site web :
openssl s_client -showcerts -connect mon-site.com:443 2>/dev/null | openssl x509 -fingerprint -noout
  • Obtenir le fingerprint du certificat :
openssl s_client -connect mon-site.com:443 2>/dev/null | openssl x509 -fingerprint -noout
  • Liste des ciphers disponible:
openssl ciphers -V "ALL:COMPLEMENTOFALL"
  • Dates de validité d'un certificat :
openssl s_client -connect mail.net-folio.net:465 2>/dev/null | openssl x509 -noout -dates
  • Ouvrir une connexion en TLS1.0 :
echo QUIT |openssl s_client -connect junior.edumedia-scieces.com:443 -tls1