S_SERVER(1SSL)

NOM
s_server - programme serveur SSL ou TLS

SYNOPSIS
openssl s_server [-accept port] [-context identifiant] [-verify profondeur] [-Verify profondeur] [-crl_check] [-crl_check_all] [-cert fichier] [-certform DER|PEM] [-key fichier] [-keyform DER|PEM] [-pass param] [-dcert fichier] [-dcertform DER|PEM] [-dkey fichier] [-dkeyform DER|PEM] [-dpass param] [-dhparam fichier] [-nbio] [-nbio_test] [-crlf] [-debug] [-msg] [-state] [-CApath répertoire] [-CAfile fichier] [-nocert] [-cipher listechiffrements] [-quiet] [-no_tmp_rsa] [-ssl2] [-ssl3] [-tls1] [-no_ssl2] [-no_ssl3] [-no_tls1] [-no_dhe] [-bugs] [-hack] [-www] [-WWW] [-HTTP] [-engine identifiant] [-tlsextdebug] [-no_ticket] [-id_prefix param] [-rand fichier(s)]

DESCRIPTION
La commande s_server implémente un serveur SSL ou TLS générique qui attend les connexions sur un port donné en utilisant SSL ou TLS.

OPTIONS

-accept port
    Le port TCP où attendre les connexions. Sans indication, le port 4433 est utilisé.

-context identifiant
    Définir l’identifiant de contexte SSL. N’importe quelle valeur de chaîne peut être donnée. Si cette option est absente, une valeur par défaut sera utilisée.

-cert fichier
    Le certificat à utiliser, la plupart des ensembles de chiffrements de serveurs nécessitent l’utilisation d’un certificat et certains ont besoin d’un certificat avec un certain type de clef publique : par exemple les ensembles de chiffrements DSS ont besoin d’un certificat contenant une clef DSS (DSA). Si aucun n’est indiqué, le nom de fichier server.pem sera 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).

-dcert fichier, -dkey fichier
    Indiquer un certificat et une clef privée supplémentaires, cela se comporte de la même façon que les options -cert et -key à part, si elles ne sont pas indiquées, l’absence de valeur par défaut (aucun certificat ni clef supplémentaires ne seront utilisés). Comme indiqué précédemment, certains ensembles de chiffrements nécessitent un certificat contenant une clef d’un certain type. Certains ensembles de chiffrements ont besoin d’un certificat contenant une clef RSA et d’autres une clef DSS (DSA). En utilisant des certificats et clefs RSA et DSS, un serveur peut accepter les clients qui ne gèrent que les ensembles de chiffrements RSA ou DSS en utilisant un certificat approprié.

-dcertform format, -dkeyform format, -dpass param
    Ajouter respectivement le format de certificat et de clef privée, et la phrase secrète.

-nocert
    Si cette option est définie, aucun certificat n’est utilisé. Cela restreint les ensembles de chiffrements disponibles à ceux anonymes (actuellement seulement DH anonyme).

-dhparam fichier
    Le fichier de paramètres DH à utiliser. Les ensembles de chiffrements DH éphémères génèrent des clefs utilisant un ensemble de paramètres DH. Sans indication, une tentative de chargement des paramètres est réalisée à partir du fichier de certificats serveur. Si cela échoue, alors un ensemble fixe de paramètres, et propre au programme s_server, sera utilisé.

-no_dhe
    Si cette option est définie, aucun paramètre DH ne sera chargé, désactivant effectivement les ensembles de chiffrements DH éphémères.

-no_tmp_rsa
    Certains ensembles de chiffrements d’exportation utilisent parfois une clef RSA temporaire, cette option désactive la création de clef RSA temporaire.

-verify profondeur, -Verify profondeur
    La profondeur de vérification à utiliser. Cela indique la taille maximale de la chaîne de certificats du client et force le serveur à demander un certificat au client. Avec l’option -verify, un certificat est demandé mais le client ne doit pas nécessairement en envoyer un, avec l’option -Verify, le client doit fournir un certificat sinon une erreur survient.

-crl_check, -crl_check_all
    Vérifier que le certificat du pair n’a pas été révoqué par son autorité de certification. Les listes de révocation de certificats sont ajoutées au fichier de certificats. Avec l’option -crl_check_all, toutes les listes de révocation de certificats de toutes les autorités de certification de la chaîne sont vérifiées.

-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 serveur.

-CAfile fichier
    Un fichier contenant les certificats de confiance à utiliser lors d’une authentification de client et à utiliser lors d’une tentative de construction de chaîne de certificats du serveur. La liste est aussi utilisée dans la liste d’autorités de certification possibles transmise au client quand un certificat est demandé.

-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).

-quiet
    Empêcher l’affichage de renseignements sur la session et le certificat.

-psk_hint suggestion
    Utiliser la suggestion PSK suggestion 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
    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 permet d’utiliser SSL v3, SSL v2 ou TLS comme approprié.

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

-hack
    Cette option active un autre contournement pour du vieux code SSL de Netscape.

-cipher listechiffrements
    Cela permet à la liste de chiffrements utilisée par le serveur d’être modifiée. Quand le client envoie une liste de chiffrements pris en charge, le premier algorithme de chiffrement client pris en charge et aussi inclus dans la liste du serveur est utilisé. Comme le client indique l’ordre de préférence, l’ordre de la liste de chiffrements du serveur n’a pas d’importance. Consultez la commande ciphers pour plus de renseignements.

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

-www
    Renvoyer un message d’état au client quand il se connecte. Cela contient beaucoup de renseignements sur les algorithmes de chiffrement utilisés et divers paramètres de session. La sortie est au format HTML donc cette option sera normalement utilisée avec un navigateur web.

-WWW
    Émuler un serveur web simple. Les pages seront résolues relativement au répertoire actuel, par exemple si l’URL https://hôte/page.html est demandée, le fichier ./page.html sera chargé.

-HTTP
    Émuler un serveur web simple. Les pages seront résolues relativement au répertoire actuel, par exemple si l’URL https://hôte/page.html est demandée, le fichier ./page.html sera chargé. Les fichiers chargés sont supposés contenir une réponse HTTP complète et correcte (les lignes qui font partie de la ligne de réponse HTTP et les en-têtes doivent se terminer par RC+PAL (CR+LF).

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

-id_prefix param
    Générer des identifiants de session SSL ou TLS précédés par param. C’est surtout utile pour tester n’importe quel code SSL ou TLS (par exemple les mandataires, ou « proxy ») qui désire échanger avec plusieurs serveurs quand chacun d’eux pourrait générer une série d’identifiants particuliers de session (par exemple avec un certain préfixe).

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

COMMANDES DE CONNEXION
Si une connexion demandée est établie avec un client SSL et qu’aucune des options -www ou -WWW n’a été utilisée, alors normalement, toutes les données reçues du client sont affichées et n’importe quel appui de touche sera envoyé au client.

Certaines commandes d’une seule lettre sont aussi reconnues et réalisent des opération particulières : la liste est ci-dessous.

q   Terminer la connexion SSL actuelle mais continuer à accepter de nouvelles connexions.

Q   Terminer la connexion SSL actuelle et quitter.

r   Renégocier la session SSL.

R   Renégocier la session SSL et demander un certificat client.

P   Envoyer du texte en clair dans la connexion TCP sous-jacente : cela devrait forcer le client à se déconnecter à cause d’une violation de protocole.

S   Afficher certains renseignements d’état sur le cache de session.

NOTES
s_server peut être utilisée pour déboguer les clients SSL. Pour accepter les connexions d’un navigateur web, la commande :

 openssl s_server -accept 443 -www

peut par exemple être utilisée.

La plupart des navigateurs web (en particulier Netscape et MSIE) n’acceptent que les ensembles de chiffrements RSA, donc ne peuvent pas se connecter à des serveurs qui n’utilisent pas de certificat ne comportant pas de clef RSA ou à une version d’OpenSSL avec RSA désactivé.

Bien qu’indiquer une liste vide d’autorités de certification lors de la demande de certificat client est une violation de protocole au sens strict, certains clients SSL interprètent cela comme une indication que n’importe quelle autorité de certification est acceptable. C’est utile dans des buts de débogage.

Les paramètres de session peuvent être affichés en utilisant le programme sess_id.

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_server est plutôt difficile à lire et n’est pas un exemple à suivre. Un programme serveur SSL typique serait beaucoup plus simple.

L’affichage des algorithmes de chiffrement communs est faux : il ne donne que la liste d’algorithmes de chiffrement reconnus par OpenSSL et pris en charge par le client.

Le programme s_server devrait pouvoir afficher des précisions sur tous les ensembles de chiffrements inconnus qu’un client prétend prendre en charge.

VOIR AUSSI
ciphers(1), sess_id(1), s_client(1)

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.