OPENSSL(1ssl)

NOM
openssl - Programme en ligne de commande d'OpenSSL

SYNOPSIS
openssl command [ options ... ] [ paramètres ... ]

openssl no-XXX [ options ]

openssl -help | -version

DESCRIPTION
OpenSSL est une boîte à outils cryptographique qui implémente les protocoles réseau Secure Sockets Layer (SSL, couche de sockets sécurisée) et Transport Layer Security (TLS, 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).

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-10

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

keccak-224
    Condensé KECCAK 224

keccak-256
    Condensé keccak-256

keccak-384
    Condensé KECCAK 384

keccak-512
    Condensé KECCAK 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 chiffrement Aria-192

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

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 du programme
Ces options peuvent être indiquées sans commande spécifiée pour obtenir une aide ou des infomations de version

-help
    Fournit un résumé succinct de toutes les options. Pour des informations plus détaillées, il existe une option -help pour chaque commande. La forme --help est aussi admise.

-version
    Fournit un résumé succinct de la version du programme openssl. Pour des informations plus détaillées, consultez openssl-version(1). La forme --version est aussi admise.

  Options courantes

-help
    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_. Les options 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 à la place de LTS. 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 tel 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 si OpenSSL a été construit sans prise en charge du suivi.

    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.

    HTTP
        Suit l'activité du client et du serveur HTTP, comme les messages envoyés et reçus

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
Copyright 2000-2023 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 <nicolas.francois@centraliens.net>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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 à debian-l10n-french@lists.debian.org.