Commande openssl Linux

Commandes Linux complètes


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-commande
  • command_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 sortie
  • 2048bits : 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é

  1. 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).
  2. 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.
  3. 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
  4. Période de validité du certificat: Mettez à jour périodiquement les certificats expirés
  5. 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

  1. Générer une paire de clés RSA de 4096 bits
  2. Créer un certificat auto-signé valide pendant 2 ans
  3. Chiffrer un fichier texte et le déchiffrer en utilisant le même mot de passe
  4. 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.


Commandes Linux complètes

Autres extensions