openssl - Programme en ligne de commande OpenSSL
SYNTAXE
openssl commande [ options ... ] [ paramètres ... ]
openssl no-XXX [ options ]
openssl -help | -version
DESCRIPTION
OpenSSL est une boîte à outils de cryptographie implémentant les protocoles de réseau Secure Sockets Layer (SSL) et Transport Layer Security (TLS) et les normes de cryptographie associées dont ils ont besoin.
Le programme openssl est un programme en ligne de commande pour utiliser les différentes fonctions de cryptographie de la bibliothèque crypto d'OpenSSL à partir de la ligne de commande. Il peut être utilisé pour :
o Création et gestion des clés privées, des clés publiques et des paramètres
o Opérations de cryptographie à clé publique
o Création de certificats X.509, de requêtes de signature de certificat (CSR) et de listes de révocation de certificats (CRL)
o Calcul des hachages de message et des codes d’authentification de message
o Chiffrement et déchiffrement avec des algorithmes de chiffrement
o Tests client et serveur SSL/TLS
o Gestion des e-mails signés ou chiffrés S/MIME
o Requêtes de horodatage, génération et vérification
RÉPERTOIRE DES COMMANDES
Le programme openssl fournit une grande variété de commandes (commande dans la « SYNTAXE » ci-dessus). Chaque commande peut avoir de nombreuses options et paramètres d’argument, comme indiqué ci-dessus sous la forme d’options et de paramètres.
La documentation détaillée et les cas d’utilisation de la plupart des sous-commandes standard sont disponibles (par exemple, openssl-x509(1)). La sous-commande openssl-list(1) peut être utilisée pour lister les sous-commandes.
La commande no-XXX teste si une commande du nom spécifié est disponible. Si aucune commande nommée XXX n’existe, elle renvoie 0 (succès) et affiche no-XXX ; sinon, elle renvoie 1 et affiche XXX. Dans les deux cas, la sortie est envoyée vers stdout et rien n’est affiché vers stderr. Les arguments supplémentaires de la ligne de commande sont toujours ignorés. Étant donné qu’il existe une commande du même nom pour chaque algorithme de chiffrement, cela fournit un moyen simple pour les scripts shell de tester la disponibilité des algorithmes de chiffrement dans le programme openssl. (no-XXX n’est pas en mesure de détecter les pseudo-commandes telles que quit, list ou no-XXX elle-même).
Option de configuration
De nombreuses commandes utilisent un fichier de configuration externe pour certains ou la totalité de leurs arguments et disposent d’une option -config pour spécifier ce fichier. Le nom par défaut du fichier est openssl.cnf dans le répertoire de stockage des certificats par défaut, qui peut être déterminé à partir de la commande openssl-version(1) à l’aide de l’option -d ou -a. La variable d’environnement OPENSSL_CONF peut être utilisée pour spécifier un autre emplacement de fichier ou pour désactiver le chargement d’une configuration (en utilisant la chaîne vide).
Entre autres, le fichier de configuration peut être utilisé pour charger des modules et pour spécifier les paramètres de génération de certificats et de nombres aléatoires. Voir config(5) pour plus de détails.
Commandes standard
asn1parse
Analyser une séquence ASN.1.
ca Gestion des autorités de certification (CA).
ciphers
Détermination de la description de la suite de chiffrement.
cms Commande CMS (Cryptographic Message Syntax).
crl Gestion de la liste de révocation de certificats (CRL).
crl2pkcs7
Conversion CRL vers PKCS#7.
dgst
Calcul de hachage de message. Les calculs MAC sont remplacés par openssl-mac(1).
dhparam
Génération et gestion des paramètres Diffie-Hellman. Remplacé par openssl-genpkey(1) et
openssl-pkeyparam(1).
dsa Gestion des données DSA.
dsaparam
Génération et gestion des paramètres DSA. Remplacé par openssl-genpkey(1) et
openssl-pkeyparam(1).
ec Traitement des clés EC (courbe elliptique).
ecparam
Manipulation et génération des paramètres EC.
enc Chiffrement, déchiffrement et encodage.
engine
Informations et manipulation des moteurs (modules chargeables).
errstr
Conversion du numéro d'erreur en chaîne d'erreur.
fipsinstall
Installation de la configuration FIPS.
gendsa
Génération d'une clé privée DSA à partir des paramètres. Remplacé par openssl-genpkey(1) et
openssl-pkey(1).
genpkey
Génération de clé privée ou de paramètres.
genrsa
Génération d'une clé privée RSA. Remplacé par openssl-genpkey(1).
help
Affichage des informations sur les options d'une commande.
info
Affichage de diverses informations intégrées aux bibliothèques OpenSSL.
kdf Fonctions de dérivation de clé.
list
Affichage des algorithmes et des fonctionnalités.
mac Calcul du code d'authentification de message.
nseq
Création ou examen d'une séquence de certificats Netscape.
ocsp
Commande du protocole de statut de certificat en ligne (OCSP).
passwd
Génération de mots de passe hachés.
pkcs12
Gestion des données PKCS#12.
pkcs7
Gestion des données PKCS#7.
pkcs8
Commande de conversion de clé privée au format PKCS#8.
pkey Gestion des clés publiques et privées.
pkeyparam
Gestion des paramètres des algorithmes de clé publique.
pkeyutl
Commande d'opération cryptographique de l'algorithme de clé publique.
prime
Calcul des nombres premiers.
rand
Génération d'octets pseudo-aléatoires.
rehash
Création de liens symboliques vers les fichiers de certificat et de CRL nommés par les valeurs de hachage.
req Gestion des demandes de signature de certificat X.509 PKCS#10 (CSR).
rsa Gestion des clés RSA.
rsautl
Commande RSA pour la signature, la vérification, le chiffrement et le déchiffrement. Remplacé par
openssl-pkeyutl(1).
s_client
Cette commande implémente un client SSL/TLS générique qui peut établir une connexion transparente à un serveur distant utilisant SSL/TLS. Elle est destinée uniquement à des fins de test et ne fournit qu'une fonctionnalité d'interface rudimentaire, mais utilise en interne la plupart des fonctionnalités de la bibliothèque SSL OpenSSL.
s_server
Cette commande implémente un serveur SSL/TLS générique qui accepte les connexions des clients distants utilisant SSL/TLS. Elle est destinée uniquement à des fins de test et ne fournit qu'une fonctionnalité d'interface rudimentaire, mais utilise en interne la plupart des fonctionnalités de la bibliothèque SSL OpenSSL. Elle fournit à la fois une interface de ligne de commande pour tester les fonctions SSL et une simple fonction de réponse HTTP pour simuler un serveur Web compatible SSL/TLS.
s_time
Minuterie de connexion SSL.
sess_id
Gestion des données de session SSL.
smime
Traitement des e-mails S/MIME.
speed
Mesure de la vitesse des algorithmes.
spkac
Commande pour imprimer et générer SPKAC.
srp
Commande pour maintenir le fichier de mots de passe SRP. Cette commande est obsolète.
storeutl
Commande pour lister et afficher les certificats, les clés, les CRL, etc.
ts
Commande pour l’autorité de certification temporelle.
verify
Vérification du certificat X.509. Voir également la page de manuel openssl-verification-options(1).
version
Informations sur la version OpenSSL.
x509
Gestion des données des certificats X.509.
Commandes de hachage de message
blake2b512
Hachage BLAKE2b-512
blake2s256
Hachage BLAKE2s-256
md2
Hachage MD2
md4
Hachage MD4
md5
Hachage MD5
mdc2
Hachage MDC2
rmd160
Hachage RMD-160
sha1
Hachage SHA-1
sha224
Hachage SHA-2 224
sha256
Hachage SHA-2 256
sha384
Hachage SHA-2 384
sha512
Hachage SHA-2 512
sha3-224
Hachage SHA-3 224
sha3-256
Hachage SHA-3 256
sha3-384
Hachage SHA-3 384
sha3-512
Hachage SHA-3 512
keccak-224
Hachage KECCAK 224
keccak-256
Hachage KECCAK 256
keccak-384
Hachage KECCAK 384
keccak-512
Hachage KECCAK 512
shake128
Hachage SHA-3 SHAKE128
shake256
Hachage SHA-3 SHAKE256
sm3
Hachage SM3
Commandes de chiffrement, de déchiffrement et d’encodage
Les alias suivants permettent d’accéder facilement aux encodages et aux chiffrements les plus utilisés.
Selon la configuration et la compilation d’OpenSSL, tous les chiffrements répertoriés ici peuvent ne pas être présents. Voir openssl-enc(1) pour plus d’informations.
aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb
Chiffre AES-128
aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb
Chiffre AES-192
aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb
Chiffre AES-256
aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb
Chiffre Aria-128
aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb
Chiffre Aria-192
aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb
Chiffre Aria-256
base64
Encodage Base64
bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb
Chiffre Blowfish
camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb,
camellia-128-ofb
Chiffre Camellia-128
camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb,
camellia-192-ofb
Chiffre Camellia-192
camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb,
camellia-256-ofb
Chiffre Camellia-256
cast, cast-cbc
Chiffre CAST
cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb
Chiffre CAST5
chacha20
Chiffre Chacha20
des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb
Chiffre DES
des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb
Chiffre Triple-DES
idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb
Chiffre IDEA
rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb
Chiffre RC2
rc4
Chiffre RC4
rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb
Chiffre RC5
seed, seed-cbc, seed-cfb, seed-ecb, seed-ofb
Chiffre SEED
sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb
Chiffre SM4
OPTIONS
Les détails des options disponibles dépendent de la commande spécifique. Cette section décrit certaines options courantes avec un comportement courant.
Options du programme
Ces options peuvent être spécifiées sans qu'une commande soit spécifiée pour obtenir de l’aide ou des informations sur la version.
-help
Fournit un résumé concis de toutes les options. Pour obtenir des informations plus détaillées, chaque commande prend en charge l’option -help. Accepte également --help.
-version
Fournit un résumé concis de la version du programme openssl. Pour obtenir des informations plus détaillées, consultez openssl-version(1). Accepte également --version.
Options courantes
-help
Si une option prend un argument, le « type » de l’argument est également indiqué.
-- Ceci met fin à la liste des options. C’est surtout utile si certains paramètres de nom de fichier commencent par un signe moins :
openssl verify [flags...] -- -cert1.pem...
Options de format
Consultez la page de manuel openssl-format-options(1).
Options de phrase de passe
Consultez la page de manuel openssl-passphrase-options(1).
Options d’état aléatoire
Avant OpenSSL 1.1.1, il était courant que les applications stockent des informations sur l’état du générateur de nombres aléatoires dans un fichier qui était chargé au démarrage et réécrit à la fermeture. Sur les systèmes d’exploitation modernes, ce n’est généralement plus nécessaire, car OpenSSL s’initialise à partir d’une source d’entropie fiable fournie par le système d’exploitation. Ces indicateurs sont toujours pris en charge pour les plateformes ou circonstances spéciales qui pourraient les nécessiter.
Il est généralement une erreur d’utiliser le même fichier de seed plus d’une fois et chaque utilisation de -rand doit être associée à -writerand.
-rand files
Un fichier ou des fichiers contenant des données aléatoires utilisées pour initialiser le générateur de nombres aléatoires. Plusieurs fichiers peuvent être spécifiés séparés par un caractère dépendant du système d’exploitation. Le séparateur est « ; » pour MSWindows, « , » pour OpenVMS et « : » pour tous les autres. Une autre façon de spécifier plusieurs fichiers consiste à répéter cet indicateur avec différents noms de fichiers.
-writerand file
Écrit les données de seed dans le fichier spécifié à la fermeture. Ce fichier peut être utilisé dans une invocation de commande ultérieure.
Options de vérification de certificat
Consultez la page de manuel openssl-verification-options(1).
Options de format de nom
Consultez la page de manuel openssl-namedisplay-options(1).
Options de version TLS
Plusieurs commandes utilisent SSL, TLS ou DTLS. Par défaut, les commandes utilisent TLS et les clients offrent la version du protocole la plus basse et la plus élevée qu’ils prennent en charge, et les serveurs sélectionnent la version la plus élevée que le client propose et qui est également prise en charge par le serveur.
Les options ci-dessous peuvent être utilisées pour limiter les versions de protocole utilisées, et pour savoir si TCP (SSL et TLS) ou UDP (DTLS) est utilisé. Notez que tous les protocoles et indicateurs ne sont pas forcément disponibles, selon la façon dont OpenSSL a été compilé.
-ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3
Ces options exigent ou désactivent l’utilisation des protocoles SSL ou TLS spécifiés. Lorsqu’une version TLS spécifique est requise, seule cette version sera proposée ou acceptée. Une seule version de protocole peut être spécifiée et elle ne peut pas être combinée avec l’un des indicateurs no_. Les indicateurs no_* ne fonctionnent pas avec les commandes s_time et ciphers, mais fonctionnent avec les commandes s_client et s_server.
-dtls, -dtls1, -dtls1_2
Ces options spécifient l'utilisation de DTLS au lieu de TLS. Avec -dtls, les clients négocieront toute version du protocole DTLS prise en charge. Utilisez les options -dtls1 ou -dtls1_2 pour prendre en charge uniquement DTLS1.0 ou DTLS1.2, respectivement.
Options du moteur
-engine id
Charge le moteur identifié par id et utilise toutes les méthodes qu'il implémente (algorithmes, stockage de clés, etc.), sauf indication contraire dans la documentation spécifique à la commande ou s'il est configuré pour le faire, comme décrit dans « Configuration du moteur » dans config(5).
Le moteur sera utilisé pour les ID de clés spécifiés avec -key et des options similaires lorsqu'une option telle que -keyform engine est donnée.
Un cas particulier est le moteur « loader_attic », qui est destiné uniquement aux tests internes d'OpenSSL et prend en charge le chargement de clés, de paramètres, de certificats et de CRL à partir de fichiers. Lorsque ce moteur est utilisé, les fichiers contenant de telles informations d'identification sont lus via ce moteur. L'utilisation du schéma « file: » est facultative ; un nom de fichier simple (chemin) fera l'affaire.
Les options spécifiant des clés, telles que -key et des options similaires, peuvent utiliser le schéma générique de chargement de clés du moteur OpenSSL « org.openssl.engine: » pour récupérer des clés privées et des clés publiques. La syntaxe de l'URI est la suivante, sous une forme simplifiée :
org.openssl.engine:{engineid}:{keyid}
Où « {engineid} » est l'identifiant/nom du moteur, et « {keyid} » est un identifiant de clé acceptable pour ce moteur. Par exemple, lorsqu'un moteur qui interagit avec une implémentation PKCS#11 est utilisé, l'URI de clé générique serait quelque chose comme ceci (il s'agit d'un exemple du moteur PKCS#11 qui fait partie d'OpenSC) :
-key org.openssl.engine:pkcs11:label_some-private-key
En tant que troisième possibilité, pour les moteurs et les fournisseurs qui ont implémenté leur propre OSSL_STORE_LOADER(3), « org.openssl.engine: » ne devrait pas être nécessaire. Pour une implémentation PKCS#11 qui a implémenté un tel chargeur, l'URI PKCS#11 tel que défini dans RFC 7512 devrait pouvoir être utilisé directement :
-key pkcs11:object=some-private-key;pin-value=1234
Options du fournisseur
-provider name
Charge et initialise le fournisseur identifié par nom. Le nom peut également être un chemin d'accès au module du fournisseur. Dans ce cas, le nom du fournisseur sera le chemin spécifié et non seulement le nom du module du fournisseur. L'interprétation des chemins relatifs est spécifique à la plateforme. Le chemin configuré « MODULESDIR », la variable d'environnement OPENSSL_MODULES ou le chemin spécifié par -provider-path est ajouté en préfixe aux chemins relatifs. Voir provider(7) pour une description plus détaillée.
-provider-path path
Spécifie le chemin de recherche à utiliser pour la recherche des fournisseurs. De manière équivalente, la variable d'environnement OPENSSL_MODULES peut être définie.
-provparam [nom:]clé=valeur
Définit le paramètre de configuration clé sur la valeur valeur dans le fournisseur nom (facultatif). Si le nom n'est pas spécifié, le paramètre sera appliqué à tous les fournisseurs chargés. Cette option peut être spécifiée plusieurs fois, afin de définir plusieurs paramètres. Les options qui spécifient des fournisseurs non par défaut à charger doivent précéder cette option si le paramètre est destiné à être appliqué aux fournisseurs à charger. Les paramètres qui affectent uniquement l'initialisation du fournisseur doivent, pour l'instant, être définis dans le fichier de configuration, seuls les paramètres qui sont également interrogés en tant que nécessaire par la suite ont un effet lorsqu'ils sont définis via cette interface. Seuls les paramètres de type chaîne UTF8 sont pris en charge. Consultez la documentation du fournisseur spécifique et des algorithmes associés pour connaître les paramètres pris en charge.
-propquery propq
Spécifie la clause de requête de propriété à utiliser lors de la récupération des algorithmes des fournisseurs chargés. Voir property(7) pour une description plus détaillée.
ENVIRONNEMENT
Les bibliothèques OpenSSL peuvent prendre certains paramètres de configuration à partir de l'environnement.
Pour plus d'informations sur toutes les variables d'environnement utilisées par les bibliothèques OpenSSL, telles que OPENSSL_CONF, OPENSSL_MODULES et OPENSSL_TRACE, voir openssl-env(7).
Pour plus d'informations sur l'utilisation des variables d'environnement dans la configuration, voir « ENVIRONNEMENT » dans config(5).
Pour plus d'informations sur des commandes spécifiques, voir openssl-engine(1), openssl-rehash(1) et tsget(1).
Pour plus d'informations sur l'interrogation ou la spécification des indicateurs d'architecture du processeur, voir OPENSSL_ia32cap(3), OPENSSL_s390xcap(3) et OPENSSL_riscvcap(3).
VOIR AUSSI
openssl-asn1parse(1), openssl-ca(1), openssl-ciphers(1), openssl-cms(1), openssl-crl(1),
openssl-crl2pkcs7(1), openssl-dgst(1), openssl-dhparam(1), openssl-dsa(1), openssl-dsaparam(1),
openssl-ec(1), openssl-ecparam(1), openssl-enc(1), openssl-engine(1), openssl-errstr(1),
openssl-gendsa(1), openssl-genpkey(1), openssl-genrsa(1), openssl-kdf(1), openssl-list(1),
openssl-mac(1), openssl-nseq(1), openssl-ocsp(1), openssl-passwd(1), openssl-pkcs12(1),
openssl-pkcs7(1), openssl-pkcs8(1), openssl-pkey(1), openssl-pkeyparam(1), openssl-pkeyutl(1),
openssl-prime(1), openssl-rand(1), openssl-rehash(1), openssl-req(1), openssl-rsa(1),
openssl-rsautl(1), openssl-s_client(1), openssl-s_server(1), openssl-s_time(1),
openssl-sess_id(1), openssl-smime(1), openssl-speed(1), openssl-spkac(1), openssl-srp(1),
openssl-storeutl(1), openssl-ts(1), openssl-verify(1), openssl-version(1), openssl-x509(1),
config(5), crypto(7), openssl-env(7), ssl(7), x509v3_config(5).
HISTOIRE
La liste des options -XXX-algorithms a été ajoutée dans OpenSSL 1.0.0 ; pour des notes sur la disponibilité des autres commandes, voir leurs pages de manuel respectives.
L’option -issuer_checks est obsolète depuis OpenSSL 1.1.0 et est ignorée silencieusement.
Les options -xcertform et -xkeyform sont obsolètes depuis OpenSSL 3.0 et n’ont aucun effet.
Le mode interactif, qui pouvait être invoqué en exécutant « openssl » sans arguments supplémentaires, a été supprimé dans OpenSSL 3.0, et l’exécution de ce programme sans arguments est maintenant équivalente à « openssl help ».
COPYRIGHT
Copyright 2000-2025 The OpenSSL Project Authors. Tous droits réservés.
Licencié sous la licence Apache 2.0 (la « Licence »). Vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence. Vous pouvez obtenir une copie dans le fichier LICENSE dans la distribution source ou à l’adresse [https://www.openssl.org/source/license.html].