Manuels pour la ligne de commande

Man » Manuel openssl en ligne - documentation en ligne détaillée pour la page de manuel openssl

🌍
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 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].