sudo apt-get install openssl # Pour Debian/Ubuntu
sudo yum install openssl # Pour RedHat/CentOS
brew install openssl # Sur macOS avec HomebrewOpenSSL 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 Homebrewopenssl versionopenssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048openssl rsa -in private_key.pem -pubout -out public_key.pemopenssl req -new -key private_key.pem -out request.csropenssl req -x509 -days 365 -key private_key.pem -in request.csr -out certificate.crtopenssl enc -aes-256-cbc -salt -in fichier.txt -out fichier_encrypted.txtopenssl enc -d -aes-256-cbc -in fichier_encrypted.txt -out fichier_decrypted.txtSymé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.