Commande openssl Linux
OpenSSL est une puissante boîte à outils cryptographique open source qui fournit divers algorithmes de chiffrement, des fonctions de gestion de certificats et des implémentations du protocole SSL/TLS. C'est l'outil standard de facto pour gérer les tâches de chiffrement dans les systèmes Linux.
Les principales fonctions d'OpenSSL incluent :
- Créer et gérer des certificats SSL
- Chiffrer/déchiffrer des fichiers
- Générer des paires de clés
- Tester les connexions SSL
- Calculer des valeurs de hachage
- Vérification de signature numérique
Syntaxe de base
Le format de syntaxe de base de la commande openssl est :
openssl command [command_options] [command_args]
Où :
commandcommande : La sous-commande OpenSSL à exécuter (par ex., genrsa, req, x509, etc.)command_optionsoptions : Options de la sous-commandecommand_argsarguments : Arguments de la sous-commande
Sous-commandes courantes et exemples
1. Générer une paire de clés RSA
Générer une clé privée RSA de 2048 bits :
openssl genrsa -out private.key 2048
Extraire la clé publique de la clé privée :
openssl rsa -in private.key -pubout -out public.key
Explication des paramètres :
-out-out : Spécifier le fichier de sortie2048bits : Longueur de la clé (bits)-pubout-pubout : Afficher la clé publique
2. Créer un certificat auto-signé
Générer une CSR (demande de signature de certificat) :
openssl req -new -key private.key -out cert.csr
Générer un certificat auto-signé (valide pendant 365 jours) :
openssl req -x509 -new -key private.key -days 365 -out cert.crt
Explication des paramètres :
-new-new : Créer une nouvelle demande-key-key : Spécifier le fichier de clé privée-days-days : Période de validité du certificat (jours)-x509-x509 : générer un certificat au format X.509
3. Chiffrement et déchiffrement de fichiers
Chiffrer un fichier avec AES-256-CBC :
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc
Déchiffrer le fichier :
openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt
Explication des paramètres :
-aes-256-cbc-aes-256-cbc : utiliser l'algorithme AES-256-CBC-salt-salt : ajouter un sel aléatoire pour renforcer la sécurité-in-in : fichier d'entrée-out-out : fichier de sortie-d-d : mode déchiffrement
4. Calculer la valeur de hachage d'un fichier
Calculer le hachage SHA-256 :
openssl dgst -sha256 filename.txt
Calculer le hachage MD5 :
openssl dgst -md5 filename.txt
5. Tester la connexion SSL
Tester le certificat SSL d'un serveur distant :
openssl s_client -connect example.com:443 -showcerts
Explication des paramètres :
-connect-connect : Spécifier l'hôte et le port-showcerts-showcerts : Afficher la chaîne de certificats du serveur
Utilisation avancée
1. Créer un certificat au format PKCS#12
Empaqueter le certificat et la clé privée dans un fichier PKCS#12 :
openssl pkcs12 -export -in cert.crt -inkey private.key -out cert.p12
2. Afficher les informations du certificat
Afficher les informations détaillées du certificat :
openssl x509 -in cert.crt -text -noout
3. Vérifier la chaîne de certificats
Vérifier l'intégrité de la chaîne de certificats :
openssl verify -CAfile ca.crt cert.crt
Considérations de sécurité
- Protection de la clé : le fichier de clé privée doit être défini avec des permissions appropriées (par ex., 600) pour éviter toute fuite.Sélection de l'algorithme : éviter d'utiliser des algorithmes non sécurisés (par ex., MD5, SHA1).
- Force du mot de passe : utilisez un mot de passe fort lors du chiffrement.Période de validité du certificat : renouvelez régulièrement les certificats expirés.
- Génération de nombres aléatoires : Assurez-vous que le système dispose de suffisamment d’entropie pour les opérations cryptographiques.: Utilisez un mot de passe fort lors du chiffrement
- Période de validité du certificat: Mettez à jour périodiquement les certificats expirés
- Génération de nombres aléatoiresAssurez-vous que le système dispose de suffisamment d’entropie pour les opérations cryptographiques.
Questions fréquentes
Q1 : Comment vérifier la version d’OpenSSL ?
openssl version
Q2 : Comment générer des clés ECC plus sécurisées ?
openssl ecparam -genkey -name secp384r1 -out ecc.key
Q3 : Comment convertir des formats de certificat ?
Convertir de PEM en DER :
openssl x509 -in cert.pem -outform der -out cert.der
Exercices pratiques
- Générer une paire de clés RSA de 4096 bits
- Créer un certificat auto-signé valide pendant 2 ans
- Chiffrer un fichier texte et le déchiffrer en utilisant le même mot de passe
- Vérifier les informations du certificat SSL des sites web que vous utilisez couramment
En maîtrisant la commande openssl, vous serez en mesure de gérer diverses tâches liées au chiffrement et à la sécurité, ce qui posera une base solide pour le travail de sécurité et de gestion des systèmes.
Autres extensions