sudo apt-get install openssl # Pour Debian/Ubuntu
sudo yum install openssl # Pour RedHat/CentOS
brew install openssl # Sur macOS avec Homebrew
OpenSSL est une bibliothèque open source puissante et largement utilisée pour la sécurisation des communications sur les réseaux grâce à la cryptographie.
OpenSSL implémente des protocoles tels que TLS (Transport Layer Security) et SSL (Secure Sockets Layer), bien que SSL soit obsolète en faveur de TLS.
OpenSSL offre un large éventail d’algorithmes cryptographiques :
Symétriques : AES, DES, 3DES, RC4.
Asymétriques : RSA, DSA, ECC.
Hachage : SHA (SHA-1, SHA-256, etc.), MD5.
Génération de clés publiques/privées et de paires de clés pour divers algorithmes.
Création, gestion, et vérification des certificats X.509.
Utilisé pour les certificats SSL/TLS.
OpenSSL peut être utilisé pour configurer une infrastructure à clés publiques et un CA (Certificate Authority).
Supporte le chiffrement de fichiers ou de messages via des commandes ou des API.
Sur la plupart des systèmes Linux, OpenSSL est préinstallé.
Sinon, vous pouvez l’installer via votre gestionnaire de paquets :
sudo apt-get install openssl # Pour Debian/Ubuntu
sudo yum install openssl # Pour RedHat/CentOS
brew install openssl # Sur macOS avec Homebrew
openssl version
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -in private_key.pem -pubout -out public_key.pem
openssl req -new -key private_key.pem -out request.csr
openssl req -x509 -days 365 -key private_key.pem -in request.csr -out certificate.crt
openssl enc -aes-256-cbc -salt -in fichier.txt -out fichier_encrypted.txt
openssl enc -d -aes-256-cbc -in fichier_encrypted.txt -out fichier_decrypted.txt
Symétrique : Une seule clé pour chiffrer et déchiffrer.
Asymétrique : Une paire de clés (publique/privée).
OpenSSL est utilisé pour générer des certificats et des clés nécessaires pour HTTPS.
Gestion des fichiers PEM, DER, PFX (PKCS#12) pour les certificats.
OpenSSL peut être utilisé dans des scripts Bash ou via des API dans divers langages (C, Python, etc.).
Configuration SSL/TLS sur des serveurs web (Apache, Nginx).
Sécurisation des communications (VPN, messageries, etc.).
Développement d’applications nécessitant de la cryptographie.
Test et débogage des connexions HTTPS.