1OPENSSL-S_SERVER(1ossl) OpenSSL OPENSSL-S_SERVER(1ossl)
2
3
4
6 openssl-s_server - SSL/TLS server program
7
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
67 This command implements a generic SSL/TLS server which listens for
68 connections on a given port using SSL/TLS.
69
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
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
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
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
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
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.9 2023-07-27 OPENSSL-S_SERVER(1ossl)