Provided by: manpages-fr-extra_20151231_all bug

NOM

       s_client - programme client SSL ou TLS

SYNOPSIS

       openssl s_client [-connect hôte:port] [-servername nom] [-verify profondeur]
       [-verify_return_error] [-cert fichier] [-certform DER|PEM] [-key fichier] [-keyform
       DER|PEM] [-pass param] [-CApath répertoire] [-CAfile fichier] [-no_alt_chains]
       [-reconnect] [-pause] [-showcerts] [-debug] [-msg] [-nbio_test] [-state] [-nbio] [-crlf]
       [-ign_eof] [-no_ign_eof] [-quiet] [-ssl2] [-ssl3] [-tls1] [-no_tls1_1] [-no_tls1_2]
       [-no_ssl2] [-no_ssl3] [-no_tls1] [-bugs] [-cipher listechiffrements] [-serverpref]
       [-starttls protocole] [-engine identifiant] [-tlsextdebug] [-no_ticket] [-sess_out
       fichier] [-sess_in fichier] [-rand fichier(s)] [-serverinfo types] [-status]
       [-nextprotoneg protocoles]

DESCRIPTION

       La commande s_client implémente un client SSL ou TLS générique qui se connecte à un hôte
       distant en utilisant SSL ou TLS. C’est un outil de diagnostic très pratique pour les
       serveurs SSL.

OPTIONS

       -connect hôte:port
           Cela indique l’hôte et le port facultatif où se connecter. Sans indication, un essai
           de connexion sera réalisé vers l’hôte local sur le port 4433.

       -servername nom
           Définir l’extension SNI (« Server Name Indication ») TLS dans le message ClientHello.

       -cert fichier
           Le certificat à utiliser, s’il est demandé par le serveur. Par défaut, aucun
           certificat n’est utilisé.

       -certform format
           Le format de certificat à utiliser : DER ou PEM. Par défaut, PEM est utilisé.

       -key fichier
           La clef privée à utiliser. En absence d’indication, le fichier de certificats sera
           utilisé.

       -keyform format
           Le format privé à utiliser : DER ou PEM. Par défaut, PEM est utilisé.

       -pass param
           La source du mot de passe de la clef privée. Pour plus d'informations sur le format de
           param, consultez la section PARAMÈTRES DE PHRASE SECRÈTE d'openssl(1).

       -verify profondeur
           La profondeur de vérification à utiliser. Cela indique la taille maximale de la chaîne
           de certificats du serveur et active la vérification de certificat du serveur.
           Actuellement l'opération de vérification continue après les erreurs de façon à montrer
           tous les problèmes liés à la chaîne de certificats. Par conséquent, la connexion
           n'échouera jamais à cause d'un échec de vérification de certificat du serveur.

       -verify_return_error
           Renvoyer les erreurs de vérification au lieu de continuer. Cela fera typiquement
           échouer l’initialisation de connexion avec une erreur fatale.

       -CApath répertoire
           Le répertoire utilisé pour la vérification de certificat du client. Ce répertoire doit
           être au « format de hachage », consultez verify pour plus de renseignements. Il est
           aussi utilisé pour construire la chaîne de certificats du client.

       -CAfile fichier
           Un fichier contenant des certificats de confiance utilisés pendant l’authentification
           du serveur et lors d’une tentative de créer la chaîne de certificats du client.

       -purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check,
       -extended_crl, -x509_strict, -policy, -check_ss_sig, -no_alt_chains
           Définir plusieurs options de validation de chaîne de certificats. Consultez la page de
           manuel verify(1) pour plus de précisions.

       -reconnect
           Se reconnecter au même serveur cinq fois en utilisant le même identifiant de session.
           Cela peut servir de test de fonctionnement du cache de session.

       -pause
           Faire une pause d’une seconde entre chaque appel de lecture et écriture.

       -showcerts
           Afficher toute la chaîne de certificats du serveur : normalement, seul le certificat
           du serveur lui-même est affiché.

       -prexit
           Afficher les renseignements de session lorsque le programme est quitté. Cela essayera
           toujours d’afficher les renseignements même en cas d’échec de connexion. Les
           renseignements ne sont normalement affichés qu’une fois si la connexion réussit. Cette
           option est utile car l’algorithme de chiffrement en cours d’utilisation pourrait être
           renégocié, ou la connexion pourrait échouer parce qu’un certificat client est demandé,
           ou n’être demandé qu’après une tentative d’accès à une certaine URL. Remarque : la
           sortie produite par cette option n’est pas toujours exacte car une connexion pourrait
           n’avoir jamais été établie.

       -state
           Afficher les états de session SSL.

       -debug
           Afficher des renseignements de débogage complets y compris l’intégralité des échanges
           au format hexadécimal.

       -msg
           Montrer tous les messages de protocole avec les échanges au format hexadécimal.

       -nbio_test
           Tester les entrées et sorties non bloquantes.

       -nbio
           Activer les entrées et sorties non bloquantes.

       -crlf
           Cette option traduit un changement de ligne du terminal en RC+PAL (CR+LF) comme exigé
           par certains serveurs.

       -ign_eof
           Empêcher la fermeture de connexion quand une fin de fichier est atteinte en entrée.

       -quiet
           Empêcher l’affichage de renseignements sur la session et le certificat. Cela active
           aussi -ign_eof implicitement.

       -no_ign_eof
           Fermer la connexion quand une fin de fichier est atteinte en entrée. Peut être
           utilisée pour remplacer le -ign_eof implicite après -quiet.

       -psk_identity identité
           Utiliser l’identité PSK identité lors de l’utilisation d’un ensemble de chiffrements
           PSK.

       -psk clef
           Utiliser la clef PSK clef lors de l’utilisation d’un ensemble de chiffrements PSK. La
           clef est donnée comme un nombre hexadécimal sans être précédé par 0x, par exemple -psk
           1a2b3c4d.

       -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2
           Ces options désactivent l’utilisation de certains protocoles SSL ou TLS. Par défaut,
           l’initialisation de connexion utilise une méthode qui devrait être compatible avec
           tous les serveurs et leur permettre d’utiliser SSL v3, SSL v2 ou TLS comme approprié.

           Malheureusement, d'anciens serveurs mal conçus encore utilisés ne gèrent pas cette
           technique et échoueront à se connecter. Certains serveurs ne fonctionnent que si TLS
           est désactivé.

       -fallback_scsv
           Envoyer TLS_FALLBACK_SCSV dans ClientHello.

       -bugs
           Plusieurs bogues sont connus dans les implémentations SSL et TLS. L'ajout de cette
           option permet de contourner certains problèmes.

       -cipher listechiffrements
           Cela permet à la liste de chiffrements envoyée par le client d’être modifiée. Bien que
           le serveur détermine l’ensemble de chiffrements qui est utilisé, il devrait prendre le
           premier algorithme de chiffrement pris en charge de la liste envoyée par le client.
           Consultez la commande ciphers pour plus de renseignements.

       -serverpref
           Utiliser les préférences de chiffrement du serveur ; utilisée seulement pour SSLV2.

       -starttls protocole
           Envoyer le ou les messages spécifiques au protocole pour basculer vers TLS pour la
           communication. protocole est un mot clef pour le protocole désiré. Actuellement, les
           seuls mots clefs pris en charge sont « smtp », « pop3 », « imap » et « ftp ».

       -tlsextdebug
           Afficher les échanges au format hexadécimal de toutes les extensions TLS reçues du
           serveur.

       -no_ticket
           Désactiver la prise en charge des tickets de session RFC 4507 bis.

       -sess_out fichier
           Envoyer la session SSL dans fichier.

       -sess_in fichier
           Charger la session SSL du fichier. Le client essayera de reprendre une connexion
           depuis cette session.

       -engine identifiant
           Indiquer un moteur (en utilisant son identifiant unique identifiant) obligera s_client
           à essayer d'obtenir une référence fonctionnelle pour le moteur indiqué et de
           l'initialiser si nécessaire. Le moteur sera ensuite utilisé par défaut pour tous les
           algorithmes disponibles.

       -rand fichier(s)
           Un ou plusieurs fichiers contenant des données aléatoires utilisées pour initialiser
           le générateur de nombres pseudoaléatoires, ou une socket EGD (consultez RAND_egd(3)).
           Plusieurs fichiers peuvent être indiqués en utilisant le séparateur du système
           d'exploitation : « ; » pour Windows, « , » pour OpenVMS et « : » pour tous les autres.

       -serverinfo types
           Une liste de types d’extension TLS (nombres compris entre 0 et 65535), séparés par des
           virgules. Chaque type est envoyé comme une extension TLS ClientHello vide. La réponse
           du serveur (s’il y en a une) sera encodée et affichée comme un fichier PEM.

       -status
           Envoyer une demande d’état de certificat au serveur (agrafage OCSP). La réponse du
           serveur (s’il y en a) est affichée.

       -nextprotoneg protocoles
           Activer l’extension TLS de négociation du prochain protocole (« Next Protocol
           Negotiation ») et fournir une liste de noms de protocoles séparés par des virgules
           dont le client devrait annoncer la prise en charge. La liste devrait d’abord contenir
           les protocoles les plus voulus. Les noms de protocole sont des chaînes
           ASCII affichables, par exemple « http/1.1 » ou « spdy/3 ». Une liste vide de
           protocoles est traitée spécialement et forcera le client à annoncer la prise en charge
           de l’extension TLS mais à se déconnecter juste après avoir reçu ServerHello avec une
           liste des protocoles serveurs pris en charge.

COMMANDES DE CONNEXION

       Si une connexion est établie avec un serveur SSL, alors toutes les données reçues du
       serveur sont affichées et n’importe quel appui de touche sera envoyée au serveur. En
       utilisation interactive (ce qui signifie que ni -quiet ni -ign_eof n’ont été données), la
       session sera renégociée si la ligne commence par un R, et, si la ligne commence par un Q
       ou si la fin de fichier est atteinte, la connexion sera fermée.

NOTES

       s_client peut être utilisée pour déboguer les serveurs SSL. Pour se connecter à un serveur
       HTTP SSL, la commande :

        openssl s_client -connect nomdeserveur:443

       serait typiquement utilisée (HTTPS utilise le port 443). Si la connexion réussit, alors
       une commande HTTP peut être donnée comme « GET / » pour récupérer une page web.

       En cas d’échec de l’initialisation de connexion, plusieurs causes sont possibles. Si
       aucune raison évidente n’est détectée comme l’absence de certificat client, les options
       -bugs, -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3 et -no_tls1 peuvent être essayées si le
       serveur est bogué. En particulier, vous devriez essayer ces options avant de soumettre un
       rapport de bogue sur une liste de diffusion d’OpenSSL.

       Un problème classique lors d’une tentative d’obtention de certificat client fonctionnel,
       est qu’un client web se plaint de ne pas avoir de certificat ou donne une liste vide pour
       le choisir. C’est généralement dû au serveur qui n’envoie pas aux clients les autorités de
       certification dans sa « liste d’autorités de certification acceptables » quand il demande
       un certificat. En utilisant s_client, la liste d’autorités de certification peut être vue
       et vérifiée. Cependant, certains serveurs ne demandent une authentification du client
       qu’après une demande d’URL spécifique. Pour obtenir la liste dans ce cas, il faut utiliser
       l’option -prexit et envoyer une requête HTTP pour une page appropriée.

       Si un certificat est indiqué sur la ligne de commandes en utilisant l'option -cert, il ne
       sera pas utilisé à moins que le serveur indiqué n’exige un certificat client. Par
       conséquent, la simple utilisation d'un certificat client sur la ligne de commandes ne
       garantit pas que le certificat fonctionne.

       En cas de problème de vérification d’un certificat de serveur, l’option -showcerts peut
       être utilisée pour montrer toute la chaîne.

       Puisque le salut du client SSLv23 ne peut pas inclure les méthodes ou extensions de
       compression, elles ne seront prises en charge que si son utilisation est désactivée, par
       exemple en utilisant l’option -no_sslv2.

       L’utilitaire s_client est un outil de test, conçu pour continuer l’initialisation de
       connexion après n’importe quelle erreur de vérification de certificat. Par conséquent, il
       acceptera n’importe quelle chaîne de certificats (de confiance ou non) envoyée par le
       pair. Aucune application réelle ne devrait faire cela car elle serait vulnérable aux
       attaques d’homme au milieu. Ce comportement peut être modifié à l’aide de l’option
       -verify_return_error : toutes les erreurs de vérification sont alors renvoyées en faisant
       échouer l’initialisation de connexion.

BOGUES

       Puisque ce programme a beaucoup d’options, et aussi parce que certaines des techniques
       utilisées sont plutôt vieilles, le code source C de s_client est plutôt difficile à lire
       et n’est pas un exemple à suivre. Un programme client SSL typique serait beaucoup plus
       simple.

       L’option -prexit est un peu du bidouillage. Les renseignements devraient vraiment être
       signalés quand une session est renégociée.

VOIR AUSSI

       sess_id(1), s_server(1), ciphers(1)

HISTORIQUE

       L’option -no_alt_chains a été ajoutée à OpenSSL 1.0.2b.

TRADUCTION

       La traduction de cette page de manuel est maintenue par les membres de la liste
       <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de
       traduction par un rapport de bogue sur le paquet manpages-fr-extra.