NOM

openssl - Programme en ligne de commande d'OpenSSL

SYNOPSIS

openssl command [ options ... ] [ paramètres ... ]
openssl no-XXX [ options ]

DESCRIPTION

OpenSSL est une boîte à outils cryptographique qui implémente les protocoles réseau Secure Sockets Layer (SSL v2/v3, couche de sockets sécurisée) et Transport Layer Security (TLS v1, sécurité pour la couche de transport) ainsi que les normes cryptographiques liées dont ils ont besoin.
Le programme openssl est un programme en ligne de commande qui permet d'utiliser les différentes fonctions cryptographiques de la bibliothèque crypto d'OpenSSL à partir de l’invite de commande. Il peut être utilisé pour :
 o la création et gestion de clefs publiques et privées, de paramètres ;
 o les opérations cryptographiques à clef publique ;  o la création de
certificats X.509, CSR et CRL ;  o le calcul de condensés de messages et
de codes d'authentification de message ;  o le chiffrement et le
déchiffrement ;  o le test de clients et serveurs SSL/TLS ;  o la
gestion de courriers S/MIME signés ou chiffrés ;  o les requêtes, création
et vérification d'horodatages.

RÉSUMÉ DES COMMANDES

Le programme openssl fournit une variété de commandes (commande dans le "SYNOPSIS" ci-dessus). Chaque commande possède de multiples options et paramètres d'arguments, affichés ci-dessus comme options et paramètres.
Une documentation détaillée et des exemples d'utilisation des sous-commandes les plus courantes sont disponibles (par exemple, x509(1). La sous-commande openssl-list(1) peut être utiliser pour lister les sous-commandes.
La commande no-XXX évalue si une commande du nom spécifié est disponible. Si aucune commande 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 dirigée vers la sortie standard et rien n'est affiché sur le flux d'erreur standard. Les paramètres supplémentaires en ligne de commande sont toujours ignorés. Dans la mesure où il y a pour chaque chiffrement une commande du même nom, cela fournit un moyen facile pour les scripts d'interpréteur de commandes de tester la disponibilité de chiffrements dans le programme openssl (no-XXX ne peut pas 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 tous leurs paramètres et disposent d'une option -config pour indiquer ce fichier. Le nom par défaut du fichier est openssl.cnf dans la zone de stockage des certificats par défaut, qui peut être déterminé par la commande openssl-version(1) avec les options -d ou -a. La variable d'environnement OPENSSL_CONF peut être utilisée pour indiquer un emplacement différent de ce fichier ou pour désactiver le chargement d'une configuration (avec une chaîne vide).
Entre autres choses, le fichier de configuration peut être utilisé pour charger des modules et pour spécifier des paramètres pour la génération de certificats et de nombres aléatoires. Consultez config(5) pour plus de détails.

Commandes standard

asn1parse
Traitement d'une séquence ASN.1.
ca
Gestion de l'Autorité de Certification (CA).
ciphers
Détermination de la description des suites de chiffrements.
cms
Commande CMS (« Cryptographic Message Syntax »).
crl
Gestion des listes de révocations de certificat (CRL).
crl2pkcs7
Conversion CRL vers PKCS#7.
dgst
Calcul de condensés de message. Les calculs MAC ont été remplacés par openssl-mac(1).
dhparam
Production et gestion de paramètres Diffie-Hellman. Remplacé par openssl-genpkey(1) et openssl-pkeyparam(1).
dsa
Gestion de données DSA.
dsaparam
Production et gestion de paramètres DSA . Remplacé par openssl-genpkey(1) et openssl-pkeyparam(1).
ec
Traitement de clefs EC (courbe elliptique) EC.
ecparam
Manipulation et génération de paramètre EC.
enc
Chiffrement, déchiffrement et encodage.
engine
Renseignements et manipulation de moteur (module chargeable).
errstr
Conversion de numéro d'erreur vers un descriptif textuel.
fipsinstall
Installation de la configuration de FIPS
gendsa
Production de clef privée DSAà partir de paramètres. Remplacé par openssl-genpkey(1) et openssl-pkey(1).
genpkey
Production de clef privée ou de paramètres.
genrsa
Production de clef privée RSA. Remplacé par openssl-genpkey(1).
help
Afficher des informations sur des options de commande.
info
Afficher diverses informations ajoutées dans les bibliothèques d'OpenSSL.
kdf
Fonctions de dérivation de clé.
list
Liste des algorithmes et des fonctionnalités.
mac
Calcul du code d'authentification de message.
nseq
Créer ou examiner une séquence de certificats Netscape.
ocsp
Commande pour le protocole de vérification en ligne de certificats.
passwd
Production de mots de passe hachés.
pkcs12
Gestion de données PKCS#12.
pkcs7
Gestion de données PKCS#7.
pkcs8
Commande de conversion de clef privée de format PKCS#8.
pkey
Gestion de clefs publiques et privées.
pkeyparam
Gestion de paramètres d'algorithme à clef publique.
pkeyutl
Commande d'opérations cryptographiques d'algorithme à clef publique.
prime
Calcul de nombres premiers.
rand
Production d'octets pseudoaléatoires.
rehash
Création de lien symboliques vers les fichiers de certificats et CRL nommés selon les valeurs de hachage.
req
Gestion des demandes de chiffrement de certificats X.509 PKCS#10 (CSR).
rsa
Gestion de clefs RSA.
rsautl
Commande RSA pour signer, vérifier, chiffrer et déchiffrer. Remplacé par openssl-pkeyutl(1).
s_client
Cela fournit un client SSL/TLS générique qui peut établir une connexion transparente avec un serveur distant parlant SSL/TLS. Étant seulement prévu pour du test, il n'offre qu'une interface fonctionnelle rudimentaire tout en utilisant en interne la quasi-totalité des fonctionnalités de la bibliothèque ssl d'OpenSSL.
s_server
Cela fournit un serveur SSL/TLS générique qui accepte les connexions à partir de clients distants parlant SSL/TLS. Étant seulement prévu pour du test, il n'offre qu'une interface fonctionnelle rudimentaire tout en utilisant en interne la quasi-totalité des fonctionnalités de la bibliothèque ssl d'OpenSSL. Il fournit à la fois son propre protocole orienté ligne de commande pour tester les fonctions SSL et une fonction simple de réponse HTTP pour émuler un serveur web à l'écoute de SSL/TLS.
s_time
Minuterie de connexion SSL.
sess_id
Gestion de données de session SSL.
smime
Traitement de courriers S/MIME.
speed
Mesure la vitesse de l'algorithme.
spkac
Commande d'affichage et de génération de SPKAC.
srp
Entretien du fichier de mot de passe SRP. Cette commande est obsolète
storeutl
Commande pour lister et afficher les certificats, clefs, CRL, etc.
ts
Commande d'autorité de certification d'horodatage.
verify
Vérification de certificat X.509. Consultez aussi la page de manuel openssl-verification-options(1)
version
Information sur la version d'OpenSSL.
x509
Gestion de données pour les certificats X.509.

Commandes de condensé de message

blake2b512
Condensé BLAKE2b-512
blake2s256
Condensé BLAKE2s-256
md2
Condensé MD2
md4
Condensé MD4
md5
Condensé MD5
mdc2
Condensé MDC2
rmd160
Condensé RMD-160
sha1
Condensé SHA-1
sha224
Condensé SHA-2 224
sha256
Condensé SHA-2 256
sha384
Condensé SHA-2 384
sha512
Condensé SHA-2 512
sha3-224
Condensé SHA-3 224
sha3-256
Condensé SHA-3 256
sha3-384
Condensé SHA-3 384
sha3-512
Condensé SHA-3 512
shake128
Condensé SHA-3 SHAKE128
shake256
Condensé SHA-3 SHAKE256
sm3
Condensé SM3

Commandes de chiffrement, de déchiffrement et d'encodage.

Les alias suivant fournissent un accès pratique aux encodages et chiffrements les plus courants.
Selon la manière dont OpenSSL a été configuré et construit, tous les chiffrements listés ici peuvent ne pas être présents. Consultez openssl-enc(1) pour plus d’informations.
aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb
Algorithme de chiffrement AES-128
aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb
Algorithme de chiffrement AES-192
aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb
Algorithme de chiffrement AES-256
aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb
Algorithme de chiffrement Aria-128
aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb
Algorithme de chiffremen Aria-192t
aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb
Algorithme de chiffrement Aria-256
base64
Encodage base64
bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb
Algorithme de chiffrement Blowfish
camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb, camellia-128-ofb
Algorithme de chiffrement Camellia-128
camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb, camellia-192-ofb
Algorithme de chiffrement Camellia-192
camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb, camellia-256-ofb
Algorithme de chiffrement Camellia-256
cast, cast-cbc
Algorithme de chiffrement CAST
cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb
Algorithme de chiffrement CAST5
chacha20
Algorithme de chiffrement chacha20
des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb
Algorithme de chiffrement DES
des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb
Algorithme de chiffrement Triple-DES
idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb
Algorithme de chiffrement IDEA
rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb
Algorithme de chiffrement RC2
rc4
Algorithme de chiffrement RC4 Cipher
rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb
Algorithme de chiffrement RC5
seed, seed-cbc, seed-cfb, seed-ecb, seed-ofb
Algorithme de chiffrement SEED
sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb
Algorithme de chiffrement SM4

OPTIONS

Le détail des options qui sont disponibles dépend de chaque commande. Cette section décrit certaines des options courantes avec leur comportement courant.

Options courantes

-help
Fournit un résumé succinct de toutes les options. Si une option demande un paramètre, le "type" du paramètre est aussi donné.
--
Cela clôture la liste des options. C'est surtout utile si des paramètres de nom de fichier commencent par un signe moins :
 openssl verify [attributs...] -- -cert1.pem...
    

Options de format

Consultez la page de manuel openssl-format-options(1).

Options de phrase secrète

Consultez la page de manuel openssl-passphrase-options(1).

Options d'état aléatoire

Avant OpenSSL 1.1.1, il était courant que des applications conservent les informations sur l'état du générateur de nombres aléatoires dans un fichier qui était chargé au démarrage et réécrit lors de la sortie. Dans les systèmes d'exploitation modernes, ce n'est plus nécessaire dans la mesure où OpenSSL génère une amorce lui-même à partir d'une source d'entropie fournie par le système d'exploitation. Ces attributs sont encore pris en charge pour des plateformes ou des circonstances particulières qui pourraient en avoir besoin.
C'est généralement une erreur d'utiliser le même fichier d'amorce plus d'une fois et chaque utilisation de rand devrait être associée à celle de -writerand.
-rand fichiers
Un fichier ou des fichiers contenant des données aléatoires utilisées pour amorcer le générateur de nombres aléatoires. Plusieurs fichiers peuvent être indiqués séparés par un caractère dépendant du système d'exploitation. Le séparateur est ";" pour MS-Windows, "," pour OpenVMS et ":" pour tous les autres. Une autre manière d'indiquer plusieurs fichiers est de répéter cet attribut avec plusieurs noms de fichier.
-writerand fichier
Écrit les données d'amorce dans le fichier spécifié lors de la sortie. Ce fichier peut être utilisé lors d'une invocation ultérieure de la commande.

Options de vérification de certificats

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 offriront la version la plus basse et la plus élevée du protocole qu'ils prennent en charge, et les serveurs prendront la valeur la plus élevée que le client offre et qui est aussi prise en charge par le serveur.
Les versions ci-dessous peuvent servir à limiter les versions du protocole utilisées, et soit TCP (SSL et TLS) soit UDP (DTLS) est utilisé. Notez que les protocoles et les attributs peuvent ne pas être disponibles, selon la manière dont OpenSSL a été construit.
-ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3
Ces options requièrent ou désactivent l'utilisation des protocoles SSL ou TLS. Quand une version particulière de TLS est requise, seule cette version sera offerte ou acceptée. Un seul protocole particulier peut être indiqué et il ne peut être combiné à aucune des options no_.
-dtls, -dtls1, -dtls1_2
Ces options spécifient l'utilisation de DTLS à la place de DLTS. Avec -dtls, les clients négocieront avec n'importe quelle version du protocole DTLS prise en charge. Utiliser les options -dtls1 ou -dtls1_2 pour ne prendre en charge que DTLS1.0 ou DTLS1.2, respectivement.

Options de moteur

-engine id
Charger le moteur identifié par id et utiliser toutes les méthodes qu'il met en œuvre (algorithmes, stockage de clés, etc.), à moins qu'il ne soit spécifié autre chose dans la documentation spécifique à la commande ou s'il est configuré pour faire ainsi comme cela est décrit dans "Configuration du moteur" dans config(5). Le moteur sera utilisé pour les identifiants de clé spécifiés avec -key et les options similaires quand une option telle que -keyform engine est passée. Le moteur "loader_attic" est un cas particulier. Il est destiné uniquement aux fins de tests internes d'OpenSSL et gère le chargement de clés, de paramètres, de certificats et de CRL à partir de fichiers. Quand ce moteur est utilisé, les fichiers avec ce type d'identifiants sont lus avec ce moteur. Utiliser le schéma "file:" est facultatif ; un nom de fichier (chemin) fonctionnera.
Les options indiquant des clés, telles que -key et d'autres semblables, peuvent utiliser la clé générique du moteur OpenSSL chargeant le schéma d'URI "org.openssl.engine:" pour récupérer les clés privées et les clés publiques. La syntaxe de l'URI est comme suit, dans une forme simplifiée :
 org.openssl.engine:{engineid}:{keyid}
Où "{engineid}" est l'identité ou le nom du moteur et "{keyid}" est un identifiant de clé acceptable pour ce moteur. Par exemple, lors de l'utilisation d'un moteur qui s'interface à une implémentation de PKCS#11, l'URI de clé générique peut être quelque chose comme cela (il se trouve que c'est un exemple pour le moteur PKCS#11 qui fait partie de OpenSC) :
 -key org.openssl.engine:pkcs11:label_une-clé-privée
Une troisième possibilité, pour les moteurs et les fournisseurs ( provider) qui ont implémenté leur propre OSSL_STORE_LOADER(3), "org.openssl.engine:" ne devrait pas être nécessaire. Pour une implémentation de PKCS#11 qui a mis en œuvre un chargeur de ce type, il devrait être possible d'utiliser directement l'URI de PKCS#11 telle que défini dans RFC 7512 :
 -key pkcs11:object=une-clé-privée;pin-value=1234

Options de fournisseur

-provider nom
Charger et initialiser le fournisseur identifié par nom. Le nom peut être aussi un chemin vers le module du fournisseur. Dans ce cas, le nom du fournisseur sera le chemin spécifié et pas seulement le nom du module dufournisseur. L'interprétation des chemins relatifs est spécifique à la plateforme. Le chemin "MODULESDIR" configuré, la variable d'environnement OPENSSL_MODULES ou le chemin indiqué par -provider-path est ajouté au début des chemins relatifs. Consultez provider(7) pour une description plus détaillée.
-provider-path chemin
Spécifie le chemin de recherche qui sera utilisé pour rechercher des fournisseurs. De façon équivalente, la variable d'environnement OPENSSL_MODULES peut être définie.
-propquery propq
Spécifie la clause de requête de propriété à utiliser lors de la recherche d'algorithmes à partir des fournisseurs chargés. Consultez property(7) pour une description plus détaillée.

ENVIRONNEMENT

La bibliothèque OpenSSL peut récupérer certains paramètres de configuration à partir de l'environnement. Certaines de ces variables sont listées plus loin. Pour des informations sur des commandes particulières, voir openssl-engine(1), openssl-rehash(1) et tsget(1).
Pour des informations sur l'utilisation de variables d'environnement dans la configuration, consultez "ENVIRONMENT" dans config(5).
Pour des informations sur la requête ou la spécification d'attributs d'architecture du CPU, consultez OPENSSL_ia32cap(3) et OPENSSL_s390xcap(3).
Pour des informations sur toutes les variables d'environnement utilisées par les bibliothèques d'OpenSSL, consultez openssl-env(7).
OPENSSL_TRACE=nom[,...]
Activer le suivi de la sortie de la bibliothèque OpenSSL, par nom. Cette sortie n'a de sens que si vous connaissez bien les fonctions internes d'OpenSSL. Aussi, cela pourrait ne vous donner aucune sortie, selon la manière dont OpenSSL a été construit. La valeur est une liste de noms séparés par des virgules dont les suivants sont disponibles :
TRACE
Suit l'API de suivi d'OpenSSL elle-même.
INIT
Suit l'initialisation et le nettoyage de la bibliothèque OpenSSL.
TLS
Suit le protocole TLS/SSL.
TLS_CIPHER
Suit les chiffrements utilisés par le protocole TLS/SSL.
CONF
Montre des détails sur la configuration du fournisseur et du moteur.
ENGINE_TABLE
La fonction qui est utilisée par le code de RSA, DSA, etc., pour sélectionner les moteurs (ENGINE) enregistrés, les caches par défaut et les références fonctionnelles, etc., générera des résumés de débogage.
ENGINE_REF_COUNT
Les comptes de référence dans la structure ENGINE seront suivis avec une ligne générée à chaque modification.
PKCS5V2
Suit la génération de clés PKCS#5 v2.
PKCS12_KEYGEN
Suit la génération de clés PKCS#12.
PKCS12_DECRYPT
Suit le déchiffrement PKCS#12.
X509V3_POLICY
Générer l'arbre de politiques complet à divers points durant l'évaluation de la politique de X.509 v3.
BN_CTX
Suit les opérations de contexte BIGNUM.
CMP
Suit l'activité de client et de serveur CMP.
STORE
Suit les opérations STORE.
DECODER
Suit les opérations de décodeur.
ENCODER
Suit les opérations d'encodeur.
REF_COUNT
Suit la décrémentation de certaines références de structure ASN.1.

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)

HISTORIQUE

Les options list -XXX-algorithms ont été ajoutées dans la version 1.0.0 d'OpenSSL. Pour des informations sur la disponibilité des autres commandes, consultez les pages de manuel correspondantes.
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 pas d'effet.
Le mode interactif qui pouvait être invoqué en exécutant la commande "openssl" sans paramètre supplémentaire a été retiré dans OpenSSL 3.0, et l'exécution de ce programme sans paramètre est maintenant équivalente à "openssl help". Copyright 2000-2022 Les auteurs du projet OpenSSL. Tous droits réservés.
Sous licence Apache 2.0 (la "Licence"). Vous ne pouvez utiliser ce fichier que conformément avec la Licence. Vous trouverez une copie dans le fichier LICENSE de la distribution du source ou à l'adresse <https://www.openssl.org/source/license.html>.

TRADUCTION

La traduction française de cette page de manuel a été créée par stolck, Nicolas François <[email protected]>, David Prévot <[email protected]> et Jean-Pierre Giraud <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]