Voici une cheat sheet OpenSSL pour les opérations courantes, notamment la création de clés, le chiffrement/déchiffrement, et la signature de documents.

Génération de clés RSA

Générer une clé privée RSA

openssl genrsa -out <clé_privé> <taille_clé>

openssl genrsa -out private.pem 2048

Générer une clé privée RSA et la sécurisé par mot de passe

openssl genrsa <algorithme_chiffrement_clé> -out <clé_privé> <taille_clé>

openssl genrsa -aes256 -out private.pem 2048
# Saisie de mot de passe dans un second temps

La clé est maintenant sécurisée par mot de passe. Cependant, on peut toujours la lire avec cat. On ne pourra en revanche réaliser aucune action cryptographique : déchiffrer, signer ou générer une clé publique.

Générer la clé publique à partir de la clé privée

openssl rsa -in <clé_privé> -pubout -out <clé_publique>

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

Retirer le mot de passe d’une clé privée

openssl rsa -in <clé_privé> -out <clé_privé_sans_mot_de_passe>

openssl rsa -in private.key -out private.key

Chiffrement et déchiffrement d'un document

Chiffrement avec la clé publique

openssl pkeyutl -encrypt -inkey <clé_privé> -pubin -in <fichier> -out <fichier_chiffré>

openssl pkeyutl -encrypt -inkey public.pem -pubin -in fichier.txt -out fichier.enc

# pkeyutl remplace rsautl qui est obsolète.

Déchiffrement avec la clé privée

openssl pkeyutl -decrypt -inkey <clé_privé> -in <fichier_chiffré> -out <fichier_déchiffré>

openssl pkeyutl -decrypt -inkey private.pem -in fichier.enc -out fichier.dec