Scroll to navigation

S_SERVER(1SSL) OpenSSL 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] [-no_alt_chains] [-nocert] [-cipher listechiffrements] [-serverpref] [-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)] [-serverinfo fichier] [-no_resumption_on_reneg] [-status] [-status_verbose] [-status_timeout nsec] [-status_url URL] [-nextprotoneg protocoles]

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

Le port TCP où attendre les connexions. Sans indication, le port 4433 est utilisé.
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.
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é.
Le format de certificat à utiliser : DER ou PEM. Par défaut, PEM est utilisé.
La clef privée à utiliser. En absence d’indication, le fichier de certificats sera utilisé.
Le format privé à utiliser : DER ou PEM. Par défaut, PEM est utilisé.
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).
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é.
Ajouter respectivement le format de certificat et de clef privée, et la phrase secrète.
Si cette option est définie, aucun certificat n’est utilisé. Cela restreint les ensembles de chiffrements disponibles à ceux anonymes (actuellement seulement DH anonyme).
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é.
Si cette option est définie, aucun paramètre DH ne sera chargé, désactivant effectivement les ensembles de chiffrements DH éphémères.
Certains ensembles de chiffrements d’exportation utilisent parfois une clef RSA temporaire, cette option désactive la création de clef RSA temporaire.
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.

Si l’ensemble de chiffrements ne peut pas demander un client de certificat (par exemple un ensemble de chiffrements anonyme ou PSK), cette option est sans effet.

Vérifier que le certificat du pair n’a pas été révoqué par son autorité de certification. Les listes de révocations de certificat sont ajoutées au fichier de certificats. Avec l’option -crl_check_all, toutes les listes de révocations de certificat de toutes les autorités de certification de la chaîne sont vérifiées.
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.
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é.
Consultez la page de manuel verify(1) pour plus de précisions.
Afficher les états de session SSL.
Afficher des renseignements de débogage complets y compris l’intégralité des échanges au format hexadécimal.
Montrer tous les messages de protocole avec les échanges au format hexadécimal.
Tester les entrées et sorties non bloquantes.
Activer les entrées et sorties non bloquantes.
Cette option traduit un changement de ligne du terminal en RC+PAL (CR+LF).
Empêcher l’affichage de renseignements sur la session et le certificat.
Utiliser la suggestion PSK lors de l’utilisation d’un ensemble de chiffrements PSK.
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.
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é.
Plusieurs bogues sont connus dans les implémentations SSL et TLS. L'ajout de cette option permet de contourner certains problèmes.
Cette option active un autre contournement pour du vieux code SSL de Netscape.
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, 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.
Utiliser les préférences de chiffrement du serveur au lieu des préférences du client.
Afficher les échanges au format hexadécimal de toutes les extensions TLS reçues du serveur.
Désactiver la prise en charge des tickets de session RFC 4507 bis.
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.
É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é.
É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).
Indiquer un moteur (en utilisant son identifiant unique identifiant) obligera s_server à 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.
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).
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.
Un fichier contenant au moins un bloc de données PEM. Chaque bloc PEM doit encoder une extension TLS ServerHello (2 octets de type, 2 octets de taille, suivis de « taille » octets de données d’extension). Si le client envoie une extension TLS ClientHello vide correspondant au type, l’extension ServerHello correspondante sera renvoyée.
Activer l’attribut SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION.
Activer la prise en charge de demande d’état de certificat au serveur (agrafage OCSP).
Activer la prise en charge de demande d’état de certificat au serveur (agrafage OCSP) et donner une sortie bavarde de la réponse OCSP.
Définir la durée d'expiration pour la réponse OCSP à nsec secondes.
Définir une URL de répondeur de repli à utiliser si aucune URL de répondeur n’est présente dans le certificat du serveur. Sans cette option, une erreur est renvoyée si le certificat du serveur ne contient pas d’adresse de répondeur.
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. 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 ».

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.

Terminer la connexion SSL actuelle mais continuer à accepter de nouvelles connexions.
Terminer la connexion SSL actuelle et quitter.
Renégocier la session SSL.
Renégocier la session SSL et demander un certificat client.
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.
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)

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.

2015-12-31 1.0.2a 1.0.2c