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] [
-keyfichier]
[
-keyform DER|
PEM] [
-pass param]
[
-dcertfichier] [
-dcertform DER|
PEM] [
-dkey
fichier] [
-dkeyformDER|
PEM] [
-dpass
param] [
-dhparam fichier]
[
-nbio][
-nbio_test] [
-crlf] [
-debug]
[
-msg] [
-state] [
-CApathrépertoire]
[
-CAfile fichier] [
-nocert]
[
-cipherlistechiffrements] [
-serverpref] [
-quiet]
[
-no_tmp_rsa][
-ssl2] [
-ssl3] [
-tls1]
[
-no_ssl2] [
-no_ssl3] [
-no_tls1][
-no_dhe]
[
-no_ecdhe] [
-bugs] [
-hack] [
-www]
[
-WWW][
-HTTP] [
-engine identifiant]
[
-tlsextdebug] [
-no_ticket][
-id_prefix param]
[
-rand fichier(s)] [
-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¶
- -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
serautilisé.
- -certform format
- Le format de certificat à utiliser : DER ou
PEM. Par défaut, PEMest 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 estutilisé.
- -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 nesont 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_ecdhe
- Si cette option est définie, aucun paramètre ECDH ne sera
chargé, désactivant effectivement les ensembles de
chiffrements ECDH é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.
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.
- -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évocations de certificat sont ajoutées au fichier de
certificats. Avec l’option -crl_check_all, toutes les
listesde révocations de certificat 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
formathexadé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 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 permettre 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
deNetscape.
- -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, 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.
- -serverpref
- Utiliser les préférences de chiffrement du serveur au lieu
des préférences du client.
- -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 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.
- -id_prefix param
- Générer des identifiants de session SSL ou TLS
précédés par param. C’estsurtout 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.
- -status
- Activer la prise en charge de demande d’état de certificat
au serveur (agrafage OCSP).
- -status_verbose
- 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.
- -status_timeout nsec
- Définir la durée d'expiration pour la réponse OCSP
à nsec secondes.
- -status_url URL
- 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.
- -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. 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.
- 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_serverest 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.