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.

1.0.2a 1.0.2c                                      2015-12-31                                     S_CLIENT(1SSL)