1OPENSSL-S_SERVER(1ossl)             OpenSSL            OPENSSL-S_SERVER(1ossl)
2
3
4

NAME

6       openssl-s_server - SSL/TLS server program
7

SYNOPSIS

9       openssl s_server [-help] [-port +int] [-accept val] [-unix val] [-4]
10       [-6] [-unlink] [-context val] [-verify int] [-Verify int] [-cert
11       infile] [-cert2 infile] [-certform DER|PEM|P12] [-cert_chain infile]
12       [-build_chain] [-serverinfo val] [-key filename|uri] [-key2
13       filename|uri] [-keyform DER|PEM|P12|ENGINE] [-pass val] [-dcert infile]
14       [-dcertform DER|PEM|P12] [-dcert_chain infile] [-dkey filename|uri]
15       [-dkeyform DER|PEM|P12|ENGINE] [-dpass val] [-nbio_test] [-crlf]
16       [-debug] [-msg] [-msgfile outfile] [-state] [-nocert] [-quiet]
17       [-no_resume_ephemeral] [-www] [-WWW] [-http_server_binmode]
18       [-no_ca_names] [-ignore_unexpected_eof] [-servername]
19       [-servername_fatal] [-tlsextdebug] [-HTTP] [-id_prefix val]
20       [-keymatexport val] [-keymatexportlen +int] [-CRL infile] [-CRLform
21       DER|PEM] [-crl_download] [-chainCAfile infile] [-chainCApath dir]
22       [-chainCAstore uri] [-verifyCAfile infile] [-verifyCApath dir]
23       [-verifyCAstore uri] [-no_cache] [-ext_cache] [-verify_return_error]
24       [-verify_quiet] [-ign_eof] [-no_ign_eof] [-no_etm] [-status]
25       [-status_verbose] [-status_timeout int] [-proxy
26       [http[s]://][userinfo@]host[:port][/path]] [-no_proxy addresses]
27       [-status_url val] [-status_file infile] [-ssl_config val] [-trace]
28       [-security_debug] [-security_debug_verbose] [-brief] [-rev] [-async]
29       [-max_send_frag +int] [-split_send_frag +int] [-max_pipelines +int]
30       [-naccept +int] [-read_buf +int] [-bugs] [-no_comp] [-comp]
31       [-no_ticket] [-serverpref] [-legacy_renegotiation] [-no_renegotiation]
32       [-no_resumption_on_reneg] [-allow_no_dhe_kex] [-prioritize_chacha]
33       [-strict] [-sigalgs val] [-client_sigalgs val] [-groups val] [-curves
34       val] [-named_curve val] [-cipher val] [-ciphersuites val] [-dhparam
35       infile] [-record_padding val] [-debug_broken_protocol] [-nbio]
36       [-psk_identity val] [-psk_hint val] [-psk val] [-psk_session file]
37       [-srpvfile infile] [-srpuserseed val] [-timeout] [-mtu +int] [-listen]
38       [-sctp] [-sctp_label_bug] [-use_srtp val] [-no_dhe] [-nextprotoneg val]
39       [-alpn val] [-sendfile] [-keylogfile outfile] [-recv_max_early_data
40       int] [-max_early_data int] [-early_data] [-stateless] [-anti_replay]
41       [-no_anti_replay] [-num_tickets] [-nameopt option] [-no_ssl3]
42       [-no_tls1] [-no_tls1_1] [-no_tls1_2] [-no_tls1_3] [-ssl3] [-tls1]
43       [-tls1_1] [-tls1_2] [-tls1_3] [-dtls] [-dtls1] [-dtls1_2]
44       [-allow_proxy_certs] [-attime timestamp] [-no_check_time]
45       [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy]
46       [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map]
47       [-partial_chain] [-policy arg] [-policy_check] [-policy_print]
48       [-purpose purpose] [-suiteB_128] [-suiteB_128_only] [-suiteB_192]
49       [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level num]
50       [-verify_depth num] [-verify_email email] [-verify_hostname hostname]
51       [-verify_ip ip] [-verify_name name] [-x509_strict] [-issuer_checks]
52       [-bugs] [-no_comp] [-comp] [-no_ticket] [-serverpref]
53       [-client_renegotiation] [-legacy_renegotiation] [-no_renegotiation]
54       [-no_resumption_on_reneg] [-legacy_server_connect]
55       [-no_legacy_server_connect] [-no_etm] [-allow_no_dhe_kex]
56       [-prioritize_chacha] [-strict] [-sigalgs algs] [-client_sigalgs algs]
57       [-groups groups] [-curves curves] [-named_curve curve] [-cipher
58       ciphers] [-ciphersuites 1.3ciphers] [-min_protocol minprot]
59       [-max_protocol maxprot] [-record_padding padding]
60       [-debug_broken_protocol] [-no_middlebox] [-xkey infile] [-xcert file]
61       [-xchain file] [-xchain_build file] [-xcertform DER|PEM]> [-xkeyform
62       DER|PEM]> [-CAfile file] [-no-CAfile] [-CApath dir] [-no-CApath]
63       [-CAstore uri] [-no-CAstore] [-rand files] [-writerand file] [-engine
64       id] [-provider name] [-provider-path path] [-propquery propq]
65

DESCRIPTION

67       This command implements a generic SSL/TLS server which listens for
68       connections on a given port using SSL/TLS.
69

OPTIONS

71       In addition to the options below, this command also supports the common
72       and server only options documented "Supported Command Line Commands" in
73       SSL_CONF_cmd(3)
74
75       -help
76           Print out a usage message.
77
78       -port +int
79           The TCP port to listen on for connections. If not specified 4433 is
80           used.
81
82       -accept val
83           The optional TCP host and port to listen on for connections. If not
84           specified, *:4433 is used.
85
86       -unix val
87           Unix domain socket to accept on.
88
89       -4  Use IPv4 only.
90
91       -6  Use IPv6 only.
92
93       -unlink
94           For -unix, unlink any existing socket first.
95
96       -context val
97           Sets the SSL context id. It can be given any string value. If this
98           option is not present a default value will be used.
99
100       -verify int, -Verify int
101           The verify depth to use. This specifies the maximum length of the
102           client certificate chain and makes the server request a certificate
103           from the client. With the -verify option a certificate is requested
104           but the client does not have to send one, with the -Verify option
105           the client must supply a certificate or an error occurs.
106
107           If the cipher suite cannot request a client certificate (for
108           example an anonymous cipher suite or PSK) this option has no
109           effect.
110
111       -cert infile
112           The certificate to use, most servers cipher suites require the use
113           of a certificate and some require a certificate with a certain
114           public key type: for example the DSS cipher suites require a
115           certificate containing a DSS (DSA) key. If not specified then the
116           filename server.pem will be used.
117
118       -cert2 infile
119           The certificate file to use for servername; default is
120           "server2.pem".
121
122       -certform DER|PEM|P12
123           The server certificate file format; unspecified by default.  See
124           openssl-format-options(1) for details.
125
126       -cert_chain
127           A file or URI of untrusted certificates to use when attempting to
128           build the certificate chain related to the certificate specified
129           via the -cert option.  The input can be in PEM, DER, or PKCS#12
130           format.
131
132       -build_chain
133           Specify whether the application should build the server certificate
134           chain to be provided to the client.
135
136       -serverinfo val
137           A file containing one or more blocks of PEM data.  Each PEM block
138           must encode a TLS ServerHello extension (2 bytes type, 2 bytes
139           length, followed by "length" bytes of extension data).  If the
140           client sends an empty TLS ClientHello extension matching the type,
141           the corresponding ServerHello extension will be returned.
142
143       -key filename|uri
144           The private key to use. If not specified then the certificate file
145           will be used.
146
147       -key2 filename|uri
148           The private Key file to use for servername if not given via -cert2.
149
150       -keyform DER|PEM|P12|ENGINE
151           The key format; unspecified by default.  See
152           openssl-format-options(1) for details.
153
154       -pass val
155           The private key and certificate file password source.  For more
156           information about the format of val, see
157           openssl-passphrase-options(1).
158
159       -dcert infile, -dkey filename|uri
160           Specify an additional certificate and private key, these behave in
161           the same manner as the -cert and -key options except there is no
162           default if they are not specified (no additional certificate and
163           key is used). As noted above some cipher suites require a
164           certificate containing a key of a certain type. Some cipher suites
165           need a certificate carrying an RSA key and some a DSS (DSA) key. By
166           using RSA and DSS certificates and keys a server can support
167           clients which only support RSA or DSS cipher suites by using an
168           appropriate certificate.
169
170       -dcert_chain
171           A file or URI of untrusted certificates to use when attempting to
172           build the server certificate chain when a certificate specified via
173           the -dcert option is in use.  The input can be in PEM, DER, or
174           PKCS#12 format.
175
176       -dcertform DER|PEM|P12
177           The format of the additional certificate file; unspecified by
178           default.  See openssl-format-options(1) for details.
179
180       -dkeyform DER|PEM|P12|ENGINE
181           The format of the additional private key; unspecified by default.
182           See openssl-format-options(1) for details.
183
184       -dpass val
185           The passphrase for the additional private key and certificate.  For
186           more information about the format of val, see
187           openssl-passphrase-options(1).
188
189       -nbio_test
190           Tests non blocking I/O.
191
192       -crlf
193           This option translated a line feed from the terminal into CR+LF.
194
195       -debug
196           Print extensive debugging information including a hex dump of all
197           traffic.
198
199       -security_debug
200           Print output from SSL/TLS security framework.
201
202       -security_debug_verbose
203           Print more output from SSL/TLS security framework
204
205       -msg
206           Show all protocol messages with hex dump.
207
208       -msgfile outfile
209           File to send output of -msg or -trace to, default standard output.
210
211       -state
212           Prints the SSL session states.
213
214       -CRL infile
215           The CRL file to use.
216
217       -CRLform DER|PEM
218           The CRL file format; unspecified by default.  See
219           openssl-format-options(1) for details.
220
221       -crl_download
222           Download CRLs from distribution points given in CDP extensions of
223           certificates
224
225       -verifyCAfile filename
226           A file in PEM format CA containing trusted certificates to use for
227           verifying client certificates.
228
229       -verifyCApath dir
230           A directory containing trusted certificates to use for verifying
231           client certificates.  This directory must be in "hash format", see
232           openssl-verify(1) for more information.
233
234       -verifyCAstore uri
235           The URI of a store containing trusted certificates to use for
236           verifying client certificates.
237
238       -chainCAfile file
239           A file in PEM format containing trusted certificates to use when
240           attempting to build the server certificate chain.
241
242       -chainCApath dir
243           A directory containing trusted certificates to use for building the
244           server certificate chain provided to the client.  This directory
245           must be in "hash format", see openssl-verify(1) for more
246           information.
247
248       -chainCAstore uri
249           The URI of a store containing trusted certificates to use for
250           building the server certificate chain provided to the client.  The
251           URI may indicate a single certificate, as well as a collection of
252           them.  With URIs in the "file:" scheme, this acts as -chainCAfile
253           or -chainCApath, depending on if the URI indicates a directory or a
254           single file.  See ossl_store-file(7) for more information on the
255           "file:" scheme.
256
257       -nocert
258           If this option is set then no certificate is used. This restricts
259           the cipher suites available to the anonymous ones (currently just
260           anonymous DH).
261
262       -quiet
263           Inhibit printing of session and certificate information.
264
265       -no_resume_ephemeral
266           Disable caching and tickets if ephemeral (EC)DH is used.
267
268       -tlsextdebug
269           Print a hex dump of any TLS extensions received from the server.
270
271       -www
272           Sends a status message back to the client when it connects. This
273           includes information about the ciphers used and various session
274           parameters.  The output is in HTML format so this option can be
275           used with a web browser.  The special URL "/renegcert" turns on
276           client cert validation, and "/reneg" tells the server to request
277           renegotiation.  The -early_data option cannot be used with this
278           option.
279
280       -WWW, -HTTP
281           Emulates a simple web server. Pages will be resolved relative to
282           the current directory, for example if the URL
283           "https://myhost/page.html" is requested the file ./page.html will
284           be sent.  If the -HTTP flag is used, the files are sent directly,
285           and should contain any HTTP response headers (including status
286           response line).  If the -WWW option is used, the response headers
287           are generated by the server, and the file extension is examined to
288           determine the Content-Type header.  Extensions of "html", "htm",
289           and "php" are "text/html" and all others are "text/plain".  In
290           addition, the special URL "/stats" will return status information
291           like the -www option.  Neither of these options can be used in
292           conjunction with -early_data.
293
294       -http_server_binmode
295           When acting as web-server (using option -WWW or -HTTP) open files
296           requested by the client in binary mode.
297
298       -no_ca_names
299           Disable TLS Extension CA Names. You may want to disable it for
300           security reasons or for compatibility with some Windows TLS
301           implementations crashing when this extension is larger than 1024
302           bytes.
303
304       -ignore_unexpected_eof
305           Some TLS implementations do not send the mandatory close_notify
306           alert on shutdown. If the application tries to wait for the
307           close_notify alert but the peer closes the connection without
308           sending it, an error is generated. When this option is enabled the
309           peer does not need to send the close_notify alert and a closed
310           connection will be treated as if the close_notify alert was
311           received.  For more information on shutting down a connection, see
312           SSL_shutdown(3).
313
314       -servername
315           Servername for HostName TLS extension.
316
317       -servername_fatal
318           On servername mismatch send fatal alert (default: warning alert).
319
320       -id_prefix val
321           Generate SSL/TLS session IDs prefixed by val. This is mostly useful
322           for testing any SSL/TLS code (e.g. proxies) that wish to deal with
323           multiple servers, when each of which might be generating a unique
324           range of session IDs (e.g. with a certain prefix).
325
326       -keymatexport
327           Export keying material using label.
328
329       -keymatexportlen
330           Export the given number of bytes of keying material; default 20.
331
332       -no_cache
333           Disable session cache.
334
335       -ext_cache.
336           Disable internal cache, set up and use external cache.
337
338       -verify_return_error
339           Verification errors normally just print a message but allow the
340           connection to continue, for debugging purposes.  If this option is
341           used, then verification errors close the connection.
342
343       -verify_quiet
344           No verify output except verify errors.
345
346       -ign_eof
347           Ignore input EOF (default: when -quiet).
348
349       -no_ign_eof
350           Do not ignore input EOF.
351
352       -no_etm
353           Disable Encrypt-then-MAC negotiation.
354
355       -status
356           Enables certificate status request support (aka OCSP stapling).
357
358       -status_verbose
359           Enables certificate status request support (aka OCSP stapling) and
360           gives a verbose printout of the OCSP response.
361
362       -status_timeout int
363           Sets the timeout for OCSP response to int seconds.
364
365       -proxy [http[s]://][userinfo@]host[:port][/path]
366           The HTTP(S) proxy server to use for reaching the OCSP server unless
367           -no_proxy applies, see below.  The proxy port defaults to 80 or 443
368           if the scheme is "https"; apart from that the optional "http://" or
369           "https://" prefix is ignored, as well as any userinfo and path
370           components.  Defaults to the environment variable "http_proxy" if
371           set, else "HTTP_PROXY" in case no TLS is used, otherwise
372           "https_proxy" if set, else "HTTPS_PROXY".
373
374       -no_proxy addresses
375           List of IP addresses and/or DNS names of servers not to use an
376           HTTP(S) proxy for, separated by commas and/or whitespace (where in
377           the latter case the whole argument must be enclosed in "...").
378           Default is from the environment variable "no_proxy" if set, else
379           "NO_PROXY".
380
381       -status_url val
382           Sets a fallback responder URL to use if no responder URL is present
383           in the server certificate. Without this option an error is returned
384           if the server certificate does not contain a responder address.
385           The optional userinfo and fragment URL components are ignored.  Any
386           given query component is handled as part of the path component.
387
388       -status_file infile
389           Overrides any OCSP responder URLs from the certificate and always
390           provides the OCSP Response stored in the file. The file must be in
391           DER format.
392
393       -ssl_config val
394           Configure SSL_CTX using the given configuration value.
395
396       -trace
397           Show verbose trace output of protocol messages.
398
399       -brief
400           Provide a brief summary of connection parameters instead of the
401           normal verbose output.
402
403       -rev
404           Simple echo server that sends back received text reversed. Also
405           sets -brief.  Cannot be used in conjunction with -early_data.
406
407       -async
408           Switch on asynchronous mode. Cryptographic operations will be
409           performed asynchronously. This will only have an effect if an
410           asynchronous capable engine is also used via the -engine option.
411           For test purposes the dummy async engine (dasync) can be used (if
412           available).
413
414       -max_send_frag +int
415           The maximum size of data fragment to send.  See
416           SSL_CTX_set_max_send_fragment(3) for further information.
417
418       -split_send_frag +int
419           The size used to split data for encrypt pipelines. If more data is
420           written in one go than this value then it will be split into
421           multiple pipelines, up to the maximum number of pipelines defined
422           by max_pipelines. This only has an effect if a suitable cipher
423           suite has been negotiated, an engine that supports pipelining has
424           been loaded, and max_pipelines is greater than 1. See
425           SSL_CTX_set_split_send_fragment(3) for further information.
426
427       -max_pipelines +int
428           The maximum number of encrypt/decrypt pipelines to be used. This
429           will only have an effect if an engine has been loaded that supports
430           pipelining (e.g. the dasync engine) and a suitable cipher suite has
431           been negotiated. The default value is 1.  See
432           SSL_CTX_set_max_pipelines(3) for further information.
433
434       -naccept +int
435           The server will exit after receiving the specified number of
436           connections, default unlimited.
437
438       -read_buf +int
439           The default read buffer size to be used for connections. This will
440           only have an effect if the buffer size is larger than the size that
441           would otherwise be used and pipelining is in use (see
442           SSL_CTX_set_default_read_buffer_len(3) for further information).
443
444       -bugs
445           There are several known bugs in SSL and TLS implementations. Adding
446           this option enables various workarounds.
447
448       -no_comp
449           Disable negotiation of TLS compression.  TLS compression is not
450           recommended and is off by default as of OpenSSL 1.1.0.
451
452       -comp
453           Enable negotiation of TLS compression.  This option was introduced
454           in OpenSSL 1.1.0.  TLS compression is not recommended and is off by
455           default as of OpenSSL 1.1.0.
456
457       -no_ticket
458           Disable RFC4507bis session ticket support. This option has no
459           effect if TLSv1.3 is negotiated. See -num_tickets.
460
461       -num_tickets
462           Control the number of tickets that will be sent to the client after
463           a full handshake in TLSv1.3. The default number of tickets is 2.
464           This option does not affect the number of tickets sent after a
465           resumption handshake.
466
467       -serverpref
468           Use the server's cipher preferences, rather than the client's
469           preferences.
470
471       -prioritize_chacha
472           Prioritize ChaCha ciphers when preferred by clients. Requires
473           -serverpref.
474
475       -no_resumption_on_reneg
476           Set the SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION option.
477
478       -client_sigalgs val
479           Signature algorithms to support for client certificate
480           authentication (colon-separated list).
481
482       -named_curve val
483           Specifies the elliptic curve to use. NOTE: this is single curve,
484           not a list.  For a list of all possible curves, use:
485
486               $ openssl ecparam -list_curves
487
488       -cipher val
489           This allows the list of TLSv1.2 and below ciphersuites used by the
490           server to be modified. This list is combined with any TLSv1.3
491           ciphersuites that have been configured. When the client sends a
492           list of supported ciphers the first client cipher also included in
493           the server list is used. Because the client specifies the
494           preference order, the order of the server cipherlist is irrelevant.
495           See openssl-ciphers(1) for more information.
496
497       -ciphersuites val
498           This allows the list of TLSv1.3 ciphersuites used by the server to
499           be modified.  This list is combined with any TLSv1.2 and below
500           ciphersuites that have been configured. When the client sends a
501           list of supported ciphers the first client cipher also included in
502           the server list is used. Because the client specifies the
503           preference order, the order of the server cipherlist is irrelevant.
504           See openssl-ciphers(1) command for more information. The format for
505           this list is a simple colon (":") separated list of TLSv1.3
506           ciphersuite names.
507
508       -dhparam infile
509           The DH parameter file to use. The ephemeral DH cipher suites
510           generate keys using a set of DH parameters. If not specified then
511           an attempt is made to load the parameters from the server
512           certificate file.  If this fails then a static set of parameters
513           hard coded into this command will be used.
514
515       -nbio
516           Turns on non blocking I/O.
517
518       -timeout
519           Enable timeouts.
520
521       -mtu
522           Set link-layer MTU.
523
524       -psk_identity val
525           Expect the client to send PSK identity val when using a PSK cipher
526           suite, and warn if they do not.  By default, the expected PSK
527           identity is the string "Client_identity".
528
529       -psk_hint val
530           Use the PSK identity hint val when using a PSK cipher suite.
531
532       -psk val
533           Use the PSK key val when using a PSK cipher suite. The key is given
534           as a hexadecimal number without leading 0x, for example -psk
535           1a2b3c4d.  This option must be provided in order to use a PSK
536           cipher.
537
538       -psk_session file
539           Use the pem encoded SSL_SESSION data stored in file as the basis of
540           a PSK.  Note that this will only work if TLSv1.3 is negotiated.
541
542       -srpvfile
543           The verifier file for SRP.  This option is deprecated.
544
545       -srpuserseed
546           A seed string for a default user salt.  This option is deprecated.
547
548       -listen
549           This option can only be used in conjunction with one of the DTLS
550           options above.  With this option, this command will listen on a UDP
551           port for incoming connections.  Any ClientHellos that arrive will
552           be checked to see if they have a cookie in them or not.  Any
553           without a cookie will be responded to with a HelloVerifyRequest.
554           If a ClientHello with a cookie is received then this command will
555           connect to that peer and complete the handshake.
556
557       -sctp
558           Use SCTP for the transport protocol instead of UDP in DTLS. Must be
559           used in conjunction with -dtls, -dtls1 or -dtls1_2. This option is
560           only available where OpenSSL has support for SCTP enabled.
561
562       -sctp_label_bug
563           Use the incorrect behaviour of older OpenSSL implementations when
564           computing endpoint-pair shared secrets for DTLS/SCTP. This allows
565           communication with older broken implementations but breaks
566           interoperability with correct implementations. Must be used in
567           conjunction with -sctp. This option is only available where OpenSSL
568           has support for SCTP enabled.
569
570       -use_srtp
571           Offer SRTP key management with a colon-separated profile list.
572
573       -no_dhe
574           If this option is set then no DH parameters will be loaded
575           effectively disabling the ephemeral DH cipher suites.
576
577       -alpn val, -nextprotoneg val
578           These flags enable the Application-Layer Protocol Negotiation or
579           Next Protocol Negotiation (NPN) extension, respectively. ALPN is
580           the IETF standard and replaces NPN.  The val list is a comma-
581           separated list of supported protocol names.  The list should
582           contain the most desirable protocols first.  Protocol names are
583           printable ASCII strings, for example "http/1.1" or "spdy/3".  The
584           flag -nextprotoneg cannot be specified if -tls1_3 is used.
585
586       -sendfile
587           If this option is set and KTLS is enabled, SSL_sendfile() will be
588           used instead of BIO_write() to send the HTTP response requested by
589           a client.  This option is only valid if -WWW or -HTTP is specified.
590
591       -keylogfile outfile
592           Appends TLS secrets to the specified keylog file such that external
593           programs (like Wireshark) can decrypt TLS connections.
594
595       -max_early_data int
596           Change the default maximum early data bytes that are specified for
597           new sessions and any incoming early data (when used in conjunction
598           with the -early_data flag). The default value is approximately 16k.
599           The argument must be an integer greater than or equal to 0.
600
601       -recv_max_early_data int
602           Specify the hard limit on the maximum number of early data bytes
603           that will be accepted.
604
605       -early_data
606           Accept early data where possible. Cannot be used in conjunction
607           with -www, -WWW, -HTTP or -rev.
608
609       -stateless
610           Require TLSv1.3 cookies.
611
612       -anti_replay, -no_anti_replay
613           Switches replay protection on or off, respectively. Replay
614           protection is on by default unless overridden by a configuration
615           file. When it is on, OpenSSL will automatically detect if a session
616           ticket has been used more than once, TLSv1.3 has been negotiated,
617           and early data is enabled on the server. A full handshake is forced
618           if a session ticket is used a second or subsequent time. Any early
619           data that was sent will be rejected.
620
621       -nameopt option
622           This specifies how the subject or issuer names are displayed.  See
623           openssl-namedisplay-options(1) for details.
624
625       -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3, -ssl3, -tls1,
626       -tls1_1, -tls1_2, -tls1_3
627           See "TLS Version Options" in openssl(1).
628
629       -dtls, -dtls1, -dtls1_2
630           These specify the use of DTLS instead of TLS.  See "TLS Version
631           Options" in openssl(1).
632
633       -bugs, -comp, -no_comp, -no_ticket, -serverpref, -client_renegotiation,
634       -legacy_renegotiation, -no_renegotiation, -no_resumption_on_reneg,
635       -legacy_server_connect, -no_legacy_server_connect, -no_etm
636       -allow_no_dhe_kex, -prioritize_chacha, -strict, -sigalgs algs,
637       -client_sigalgs algs, -groups groups, -curves curves, -named_curve
638       curve, -cipher ciphers, -ciphersuites 1.3ciphers, -min_protocol
639       minprot, -max_protocol maxprot, -record_padding padding,
640       -debug_broken_protocol, -no_middlebox
641           See "SUPPORTED COMMAND LINE COMMANDS" in SSL_CONF_cmd(3) for
642           details.
643
644       -xkey infile, -xcert file, -xchain file, -xchain_build file, -xcertform
645       DER|PEM, -xkeyform DER|PEM
646           Set extended certificate verification options.  See "Extended
647           Verification Options" in openssl-verification-options(1) for
648           details.
649
650       -CAfile file, -no-CAfile, -CApath dir, -no-CApath, -CAstore uri,
651       -no-CAstore
652           See "Trusted Certificate Options" in
653           openssl-verification-options(1) for details.
654
655       -rand files, -writerand file
656           See "Random State Options" in openssl(1) for details.
657
658       -engine id
659           See "Engine Options" in openssl(1).  This option is deprecated.
660
661       -provider name
662       -provider-path path
663       -propquery propq
664           See "Provider Options" in openssl(1), provider(7), and property(7).
665
666       -allow_proxy_certs, -attime, -no_check_time, -check_ss_sig, -crl_check,
667       -crl_check_all, -explicit_policy, -extended_crl, -ignore_critical,
668       -inhibit_any, -inhibit_map, -no_alt_chains, -partial_chain, -policy,
669       -policy_check, -policy_print, -purpose, -suiteB_128, -suiteB_128_only,
670       -suiteB_192, -trusted_first, -use_deltas, -auth_level, -verify_depth,
671       -verify_email, -verify_hostname, -verify_ip, -verify_name, -x509_strict
672       -issuer_checks
673           Set various options of certificate chain verification.  See
674           "Verification Options" in openssl-verification-options(1) for
675           details.
676
677           If the server requests a client certificate, then verification
678           errors are displayed, for debugging, but the command will proceed
679           unless the -verify_return_error option is used.
680

CONNECTED COMMANDS

682       If a connection request is established with an SSL client and neither
683       the -www nor the -WWW option has been used then normally any data
684       received from the client is displayed and any key presses will be sent
685       to the client.
686
687       Certain commands are also recognized which perform special operations.
688       These commands are a letter which must appear at the start of a line.
689       They are listed below.
690
691       q   End the current SSL connection but still accept new connections.
692
693       Q   End the current SSL connection and exit.
694
695       r   Renegotiate the SSL session (TLSv1.2 and below only).
696
697       R   Renegotiate the SSL session and request a client certificate
698           (TLSv1.2 and below only).
699
700       P   Send some plain text down the underlying TCP connection: this
701           should cause the client to disconnect due to a protocol violation.
702
703       S   Print out some session cache status information.
704
705       k   Send a key update message to the client (TLSv1.3 only)
706
707       K   Send a key update message to the client and request one back
708           (TLSv1.3 only)
709
710       c   Send a certificate request to the client (TLSv1.3 only)
711

NOTES

713       This command can be used to debug SSL clients. To accept connections
714       from a web browser the command:
715
716        openssl s_server -accept 443 -www
717
718       can be used for example.
719
720       Although specifying an empty list of CAs when requesting a client
721       certificate is strictly speaking a protocol violation, some SSL clients
722       interpret this to mean any CA is acceptable. This is useful for
723       debugging purposes.
724
725       The session parameters can printed out using the openssl-sess_id(1)
726       command.
727

BUGS

729       Because this program has a lot of options and also because some of the
730       techniques used are rather old, the C source for this command is rather
731       hard to read and not a model of how things should be done.  A typical
732       SSL server program would be much simpler.
733
734       The output of common ciphers is wrong: it just gives the list of
735       ciphers that OpenSSL recognizes and the client supports.
736
737       There should be a way for this command to print out details of any
738       unknown cipher suites a client says it supports.
739

SEE ALSO

741       openssl(1), openssl-sess_id(1), openssl-s_client(1),
742       openssl-ciphers(1), SSL_CONF_cmd(3), SSL_CTX_set_max_send_fragment(3),
743       SSL_CTX_set_split_send_fragment(3), SSL_CTX_set_max_pipelines(3),
744       ossl_store-file(7)
745

HISTORY

747       The -no_alt_chains option was added in OpenSSL 1.1.0.
748
749       The -allow-no-dhe-kex and -prioritize_chacha options were added in
750       OpenSSL 1.1.1.
751
752       The -srpvfile, -srpuserseed, and -engine option were deprecated in
753       OpenSSL 3.0.
754
756       Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved.
757
758       Licensed under the Apache License 2.0 (the "License").  You may not use
759       this file except in compliance with the License.  You can obtain a copy
760       in the file LICENSE in the source distribution or at
761       <https://www.openssl.org/source/license.html>.
762
763
764
7653.0.5                             2022-07-05           OPENSSL-S_SERVER(1ossl)
Impressum