]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man1/s_server.pod
Add documentation for the new s_client and s_server early_data options
[thirdparty/openssl.git] / doc / man1 / s_server.pod
CommitLineData
a2151c5b
DSH
1=pod
2
3=head1 NAME
4
5s_server - SSL/TLS server program
6
7=head1 SYNOPSIS
8
a2bbe594 9B<openssl> B<s_server>
169394d4 10[B<-help>]
a22f9c84
E
11[B<-port port>]
12[B<-accept val>]
642aa226 13[B<-naccept count>]
a22f9c84
E
14[B<-unix val>]
15[B<-unlink>]
16[B<-4>]
17[B<-6>]
a2151c5b
DSH
18[B<-context id>]
19[B<-verify depth>]
20[B<-Verify depth>]
51e00db2
LJ
21[B<-crl_check>]
22[B<-crl_check_all>]
a2151c5b 23[B<-cert filename>]
826a42a0 24[B<-certform DER|PEM>]
a2151c5b 25[B<-key keyfile>]
826a42a0
DSH
26[B<-keyform DER|PEM>]
27[B<-pass arg>]
a2151c5b 28[B<-dcert filename>]
826a42a0 29[B<-dcertform DER|PEM>]
a2151c5b 30[B<-dkey keyfile>]
826a42a0
DSH
31[B<-dkeyform DER|PEM>]
32[B<-dpass arg>]
a2151c5b
DSH
33[B<-dhparam filename>]
34[B<-nbio>]
35[B<-nbio_test>]
36[B<-crlf>]
37[B<-debug>]
1d8634b1 38[B<-msg>]
a2151c5b
DSH
39[B<-state>]
40[B<-CApath directory>]
41[B<-CAfile filename>]
40e2d76b
MC
42[B<-no-CAfile>]
43[B<-no-CApath>]
e42d84be
HK
44[B<-attime timestamp>]
45[B<-check_ss_sig>]
46[B<-explicit_policy>]
47[B<-extended_crl>]
48[B<-ignore_critical>]
49[B<-inhibit_any>]
50[B<-inhibit_map>]
5a1f853b 51[B<-no_check_time>]
e42d84be
HK
52[B<-partial_chain>]
53[B<-policy arg>]
54[B<-policy_check>]
55[B<-policy_print>]
56[B<-purpose purpose>]
57[B<-suiteB_128>]
58[B<-suiteB_128_only>]
59[B<-suiteB_192>]
6d3d5793 60[B<-trusted_first>]
fa7b0111 61[B<-no_alt_chains>]
e42d84be 62[B<-use_deltas>]
fbb82a60 63[B<-auth_level num>]
a7c04f2b 64[B<-nameopt option>]
e42d84be 65[B<-verify_depth num>]
8d419330 66[B<-verify_return_error>]
e42d84be
HK
67[B<-verify_email email>]
68[B<-verify_hostname hostname>]
69[B<-verify_ip ip>]
70[B<-verify_name name>]
71[B<-x509_strict>]
a2151c5b
DSH
72[B<-nocert>]
73[B<-cipher cipherlist>]
fc1d88f0 74[B<-serverpref>]
a2151c5b 75[B<-quiet>]
a2151c5b
DSH
76[B<-ssl3>]
77[B<-tls1>]
582a17d6
MC
78[B<-tls1_1>]
79[B<-tls1_2>]
80[B<-tls1_3>]
35d15a39
MC
81[B<-dtls>]
82[B<-dtls1>]
83[B<-dtls1_2>]
84[B<-listen>]
bc8857bf 85[B<-async>]
0df80881
MC
86[B<-split_send_frag>]
87[B<-max_pipelines>]
88[B<-read_buf>]
a2151c5b
DSH
89[B<-no_ssl3>]
90[B<-no_tls1>]
8c73aeb6
VD
91[B<-no_tls1_1>]
92[B<-no_tls1_2>]
582a17d6 93[B<-no_tls1_3>]
a2151c5b
DSH
94[B<-no_dhe>]
95[B<-bugs>]
cc5a9ba4
VD
96[B<-comp>]
97[B<-no_comp>]
765b4137 98[B<-brief>]
a2151c5b
DSH
99[B<-www>]
100[B<-WWW>]
7b825005 101[B<-HTTP>]
5270e702 102[B<-engine id>]
d24a9c8f
DSH
103[B<-tlsextdebug>]
104[B<-no_ticket>]
e986704d 105[B<-id_prefix arg>]
52b621db 106[B<-rand file(s)>]
9cd50f73 107[B<-serverinfo file>]
36086186 108[B<-no_resumption_on_reneg>]
cba3f1c7
DSH
109[B<-status>]
110[B<-status_verbose>]
111[B<-status_timeout nsec>]
112[B<-status_url url>]
acf65ae5 113[B<-status_file file>]
776e15f9 114[B<-alpn protocols>]
7efd0e77 115[B<-nextprotoneg protocols>]
6437b802
MC
116[B<-max_early_data>]
117[B<-early_data>]
7efd0e77 118
a2151c5b
DSH
119=head1 DESCRIPTION
120
121The B<s_server> command implements a generic SSL/TLS server which listens
122for connections on a given port using SSL/TLS.
123
124=head1 OPTIONS
125
765b4137
DSH
126In addition to the options below the B<s_server> utility also supports the
127common and server only options documented in the
6f0ac0e2
RS
128in the "Supported Command Line Commands" section of the L<SSL_CONF_cmd(3)>
129manual page.
765b4137 130
a2151c5b
DSH
131=over 4
132
169394d4
MR
133=item B<-help>
134
135Print out a usage message.
136
a22f9c84 137=item B<-port port>
a2151c5b 138
8c73aeb6 139The TCP port to listen on for connections. If not specified 4433 is used.
a2151c5b 140
a22f9c84
E
141=item B<-accept val>
142
143The optional TCP host and port to listen on for connections. If not specified, *:4433 is used.
144
642aa226
DSH
145=item B<-naccept count>
146
8c73aeb6 147The server will exit after receiving B<number> connections, default unlimited.
642aa226 148
a22f9c84
E
149=item B<-unix val>
150
151Unix domain socket to accept on.
152
153=item B<-unlink>
154
155For -unix, unlink existing socket first.
156
157=item B<-4>
158
159Use IPv4 only.
160
161=item B<-6>
162
163Use IPv6 only.
164
a2151c5b
DSH
165=item B<-context id>
166
8c73aeb6 167Sets the SSL context id. It can be given any string value. If this option
cc8709a0 168is not present a default value will be used.
a2151c5b
DSH
169
170=item B<-cert certname>
171
172The certificate to use, most servers cipher suites require the use of a
173certificate and some require a certificate with a certain public key type:
174for example the DSS cipher suites require a certificate containing a DSS
175(DSA) key. If not specified then the filename "server.pem" will be used.
176
826a42a0
DSH
177=item B<-certform format>
178
179The certificate format to use: DER or PEM. PEM is the default.
180
a2151c5b
DSH
181=item B<-key keyfile>
182
183The private key to use. If not specified then the certificate file will
184be used.
185
826a42a0
DSH
186=item B<-keyform format>
187
188The private format to use: DER or PEM. PEM is the default.
189
190=item B<-pass arg>
191
8c73aeb6 192The private key password source. For more information about the format of B<arg>
9b86974e 193see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
826a42a0 194
a2151c5b
DSH
195=item B<-dcert filename>, B<-dkey keyname>
196
8c73aeb6 197Specify an additional certificate and private key, these behave in the
a2151c5b
DSH
198same manner as the B<-cert> and B<-key> options except there is no default
199if they are not specified (no additional certificate and key is used). As
200noted above some cipher suites require a certificate containing a key of
201a certain type. Some cipher suites need a certificate carrying an RSA key
202and some a DSS (DSA) key. By using RSA and DSS certificates and keys
203a server can support clients which only support RSA or DSS cipher suites
204by using an appropriate certificate.
205
826a42a0
DSH
206=item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg>
207
8c73aeb6 208Additional certificate and private key format and passphrase respectively.
826a42a0 209
a2151c5b
DSH
210=item B<-nocert>
211
8c73aeb6 212If this option is set then no certificate is used. This restricts the
a2151c5b
DSH
213cipher suites available to the anonymous ones (currently just anonymous
214DH).
215
216=item B<-dhparam filename>
217
8c73aeb6 218The DH parameter file to use. The ephemeral DH cipher suites generate keys
a2151c5b 219using a set of DH parameters. If not specified then an attempt is made to
8c73aeb6
VD
220load the parameters from the server certificate file.
221If this fails then a static set of parameters hard coded into the B<s_server>
222program will be used.
a2151c5b 223
45ecfb19 224=item B<-no_dhe>
a2151c5b 225
8c73aeb6 226If this option is set then no DH parameters will be loaded effectively
a2151c5b
DSH
227disabling the ephemeral DH cipher suites.
228
51e00db2
LJ
229=item B<-crl_check>, B<-crl_check_all>
230
231Check the peer certificate has not been revoked by its CA.
232The CRL(s) are appended to the certificate file. With the B<-crl_check_all>
233option all CRLs of all CAs in the chain are checked.
234
a2151c5b
DSH
235=item B<-CApath directory>
236
237The directory to use for client certificate verification. This directory
238must be in "hash format", see B<verify> for more information. These are
239also used when building the server certificate chain.
240
241=item B<-CAfile file>
242
243A file containing trusted certificates to use during client authentication
244and to use when attempting to build the server certificate chain. The list
245is also used in the list of acceptable client CAs passed to the client when
246a certificate is requested.
247
40e2d76b
MC
248=item B<-no-CAfile>
249
250Do not load the trusted CA certificates from the default file location
251
252=item B<-no-CApath>
253
254Do not load the trusted CA certificates from the default directory location
255
8d419330
RS
256=item B<-verify depth>, B<-Verify depth>
257
258The verify depth to use. This specifies the maximum length of the
259client certificate chain and makes the server request a certificate from
260the client. With the B<-verify> option a certificate is requested but the
261client does not have to send one, with the B<-Verify> option the client
262must supply a certificate or an error occurs.
263
264If the ciphersuite cannot request a client certificate (for example an
265anonymous ciphersuite or PSK) this option has no effect.
266
a7c04f2b
DB
267=item B<-nameopt option>
268
269option which determines how the subject or issuer names are displayed. The
270B<option> argument can be a single option or multiple options separated by
271commas. Alternatively the B<-nameopt> switch may be used more than once to
272set multiple options. See the L<x509(1)> manual page for details.
273
d33def66
VD
274=item B<-attime>, B<-check_ss_sig>, B<-crl_check>, B<-crl_check_all>,
275B<-explicit_policy>, B<-extended_crl>, B<-ignore_critical>, B<-inhibit_any>,
5a1f853b 276B<-inhibit_map>, B<-no_alt_chains>, B<-no_check_time>, B<-partial_chain>, B<-policy>,
d33def66
VD
277B<-policy_check>, B<-policy_print>, B<-purpose>, B<-suiteB_128>,
278B<-suiteB_128_only>, B<-suiteB_192>, B<-trusted_first>, B<-use_deltas>,
fbb82a60
VD
279B<-auth_level>, B<-verify_depth>, B<-verify_email>, B<-verify_hostname>,
280B<-verify_ip>, B<-verify_name>, B<-x509_strict>
6d3d5793 281
e42d84be 282Set different peer certificate verification options.
9b86974e 283See the L<verify(1)> manual page for details.
6d3d5793 284
8d419330
RS
285=item B<-verify_return_error>
286
287Verification errors normally just print a message but allow the
288connection to continue, for debugging purposes.
289If this option is used, then verification errors close the connection.
290
a2151c5b
DSH
291=item B<-state>
292
8c73aeb6 293Prints the SSL session states.
a2151c5b
DSH
294
295=item B<-debug>
296
8c73aeb6 297Print extensive debugging information including a hex dump of all traffic.
a2151c5b 298
1d8634b1
BM
299=item B<-msg>
300
8c73aeb6 301Show all protocol messages with hex dump.
1d8634b1 302
8dbeb110
DSH
303=item B<-trace>
304
8c73aeb6 305Show verbose trace output of protocol messages. OpenSSL needs to be compiled
8dbeb110
DSH
306with B<enable-ssl-trace> for this option to work.
307
308=item B<-msgfile>
309
8c73aeb6 310File to send output of B<-msg> or B<-trace> to, default standard output.
8dbeb110 311
a2151c5b
DSH
312=item B<-nbio_test>
313
8c73aeb6 314Tests non blocking I/O
a2151c5b
DSH
315
316=item B<-nbio>
317
8c73aeb6 318Turns on non blocking I/O
a2151c5b
DSH
319
320=item B<-crlf>
321
8c73aeb6 322This option translated a line feed from the terminal into CR+LF.
a2151c5b
DSH
323
324=item B<-quiet>
325
8c73aeb6 326Inhibit printing of session and certificate information.
a2151c5b 327
ddac1974
NL
328=item B<-psk_hint hint>
329
330Use the PSK identity hint B<hint> when using a PSK cipher suite.
331
332=item B<-psk key>
333
334Use the PSK key B<key> when using a PSK cipher suite. The key is
335given as a hexadecimal number without leading 0x, for example -psk
3361a2b3c4d.
337
582a17d6 338=item B<-ssl2>, B<-ssl3>, B<-tls1>, B<-tls1_1>, B<-tls1_2>, B<-tls1_3>, B<-no_ssl2>, B<-no_ssl3>, B<-no_tls1>, B<-no_tls1_1>, B<-no_tls1_2>, B<-no_tls1_3>
a2151c5b 339
8c73aeb6
VD
340These options require or disable the use of the specified SSL or TLS protocols.
341By default B<s_server> will negotiate the highest mutually supported protocol
342version.
343When a specific TLS version is required, only that version will be accepted
344from the client.
a2151c5b 345
35d15a39
MC
346=item B<-dtls>, B<-dtls1>, B<-dtls1_2>
347
8c73aeb6 348These options make B<s_server> use DTLS protocols instead of TLS.
77a795e4 349With B<-dtls>, B<s_server> will negotiate any supported DTLS protocol version,
8c73aeb6
VD
350whilst B<-dtls1> and B<-dtls1_2> will only support DTLSv1.0 and DTLSv1.2
351respectively.
35d15a39
MC
352
353=item B<-listen>
354
8c73aeb6
VD
355This option can only be used in conjunction with one of the DTLS options above.
356With this option B<s_server> will listen on a UDP port for incoming connections.
35d15a39 357Any ClientHellos that arrive will be checked to see if they have a cookie in
8c73aeb6
VD
358them or not.
359Any without a cookie will be responded to with a HelloVerifyRequest.
360If a ClientHello with a cookie is received then B<s_server> will connect to
361that peer and complete the handshake.
35d15a39 362
bc8857bf
MC
363=item B<-async>
364
8c73aeb6 365Switch on asynchronous mode. Cryptographic operations will be performed
bc8857bf
MC
366asynchronously. This will only have an effect if an asynchronous capable engine
367is also used via the B<-engine> option. For test purposes the dummy async engine
368(dasync) can be used (if available).
369
0df80881
MC
370=item B<-split_send_frag int>
371
372The size used to split data for encrypt pipelines. If more data is written in
373one go than this value then it will be split into multiple pipelines, up to the
374maximum number of pipelines defined by max_pipelines. This only has an effect if
375a suitable ciphersuite has been negotiated, an engine that supports pipelining
376has been loaded, and max_pipelines is greater than 1. See
377L<SSL_CTX_set_split_send_fragment(3)> for further information.
378
379=item B<-max_pipelines int>
380
381The maximum number of encrypt/decrypt pipelines to be used. This will only have
382an effect if an engine has been loaded that supports pipelining (e.g. the dasync
77a795e4 383engine) and a suitable ciphersuite has been negotiated. The default value is 1.
0df80881
MC
384See L<SSL_CTX_set_max_pipelines(3)> for further information.
385
386=item B<-read_buf int>
387
388The default read buffer size to be used for connections. This will only have an
389effect if the buffer size is larger than the size that would otherwise be used
390and pipelining is in use (see L<SSL_CTX_set_default_read_buffer_len(3)> for
391further information).
392
a2151c5b
DSH
393=item B<-bugs>
394
8c73aeb6 395There are several known bug in SSL and TLS implementations. Adding this
a2151c5b
DSH
396option enables various workarounds.
397
cc5a9ba4
VD
398=item B<-comp>
399
400Enable negotiation of TLS compression.
401This option was introduced in OpenSSL 1.1.0.
402TLS compression is not recommended and is off by default as of
403OpenSSL 1.1.0.
404
405=item B<-no_comp>
406
407Disable negotiation of TLS compression.
408TLS compression is not recommended and is off by default as of
409OpenSSL 1.1.0.
410
765b4137
DSH
411=item B<-brief>
412
8c73aeb6
VD
413Provide a brief summary of connection parameters instead of the normal verbose
414output.
765b4137 415
a2151c5b
DSH
416=item B<-cipher cipherlist>
417
8c73aeb6 418This allows the cipher list used by the server to be modified. When
fabce041
DSH
419the client sends a list of supported ciphers the first client cipher
420also included in the server list is used. Because the client specifies
421the preference order, the order of the server cipherlist irrelevant. See
422the B<ciphers> command for more information.
a2151c5b 423
fc1d88f0
RS
424=item B<-serverpref>
425
8c73aeb6 426Use the server's cipher preferences, rather than the client's preferences.
fc1d88f0 427
d24a9c8f
DSH
428=item B<-tlsextdebug>
429
8c73aeb6 430Print a hex dump of any TLS extensions received from the server.
d24a9c8f
DSH
431
432=item B<-no_ticket>
433
8c73aeb6 434Disable RFC4507bis session ticket support.
d24a9c8f 435
a2151c5b
DSH
436=item B<-www>
437
8c73aeb6
VD
438Sends a status message back to the client when it connects. This includes
439information about the ciphers used and various session parameters.
a2151c5b
DSH
440The output is in HTML format so this option will normally be used with a
441web browser.
442
443=item B<-WWW>
444
8c73aeb6 445Emulates a simple web server. Pages will be resolved relative to the
a2151c5b
DSH
446current directory, for example if the URL https://myhost/page.html is
447requested the file ./page.html will be loaded.
448
7b825005
RL
449=item B<-HTTP>
450
8c73aeb6 451Emulates a simple web server. Pages will be resolved relative to the
7b825005
RL
452current directory, for example if the URL https://myhost/page.html is
453requested the file ./page.html will be loaded. The files loaded are
454assumed to contain a complete and correct HTTP response (lines that
3b80e3aa 455are part of the HTTP response line and headers must end with CRLF).
7b825005 456
765b4137
DSH
457=item B<-rev>
458
8c73aeb6 459Simple test server which just reverses the text received from the client
765b4137
DSH
460and sends it back to the server. Also sets B<-brief>.
461
5270e702
RL
462=item B<-engine id>
463
8c73aeb6 464Specifying an engine (by its unique B<id> string) will cause B<s_server>
5270e702
RL
465to attempt to obtain a functional reference to the specified engine,
466thus initialising it if needed. The engine will then be set as the default
467for all available algorithms.
468
e986704d
RL
469=item B<-id_prefix arg>
470
8c73aeb6 471Generate SSL/TLS session IDs prefixed by B<arg>. This is mostly useful
e986704d
RL
472for testing any SSL/TLS code (eg. proxies) that wish to deal with multiple
473servers, when each of which might be generating a unique range of session
474IDs (eg. with a certain prefix).
475
52b621db
LJ
476=item B<-rand file(s)>
477
8c73aeb6 478A file or files containing random data used to seed the random number
9b86974e 479generator, or an EGD socket (see L<RAND_egd(3)>).
35ed393e 480Multiple files can be specified separated by an OS-dependent character.
52b621db
LJ
481The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
482all others.
483
9cd50f73
T
484=item B<-serverinfo file>
485
8c73aeb6 486A file containing one or more blocks of PEM data. Each PEM block
9cd50f73
T
487must encode a TLS ServerHello extension (2 bytes type, 2 bytes length,
488followed by "length" bytes of extension data). If the client sends
489an empty TLS ClientHello extension matching the type, the corresponding
490ServerHello extension will be returned.
491
36086186
SD
492=item B<-no_resumption_on_reneg>
493
8c73aeb6 494Set the B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> option.
36086186 495
cba3f1c7
DSH
496=item B<-status>
497
8c73aeb6 498Enables certificate status request support (aka OCSP stapling).
cba3f1c7
DSH
499
500=item B<-status_verbose>
501
8c73aeb6 502Enables certificate status request support (aka OCSP stapling) and gives
cba3f1c7
DSH
503a verbose printout of the OCSP response.
504
505=item B<-status_timeout nsec>
506
8c73aeb6 507Sets the timeout for OCSP response to B<nsec> seconds.
cba3f1c7
DSH
508
509=item B<-status_url url>
510
8c73aeb6 511Sets a fallback responder URL to use if no responder URL is present in the
cba3f1c7
DSH
512server certificate. Without this option an error is returned if the server
513certificate does not contain a responder address.
514
acf65ae5
MC
515=item B<-status_file file>
516
517Overrides any OCSP responder URLs from the certificate and always provides the
518OCSP Response stored in the file. The file must be in DER format.
519
776e15f9 520=item B<-alpn protocols>, B<-nextprotoneg protocols>
7efd0e77 521
776e15f9
RS
522these flags enable the
523Enable the Application-Layer Protocol Negotiation or Next Protocol
524Negotiation extension, respectively. ALPN is the IETF standard and
525replaces NPN.
526The B<protocols> list is a
7efd0e77
HK
527comma-separated list of supported protocol names.
528The list should contain most wanted protocols first.
529Protocol names are printable ASCII strings, for example "http/1.1" or
530"spdy/3".
531
6437b802
MC
532=item B<-max_early_data>
533
534Change the default maximum early data bytes that are specified for new sessions
535and any incoming early data (when used in conjunction with the B<-early_data>
536flag). The default value is approximately 16k.
537
538=item B<-early_data>
539
540Accept early data where possible.
541
a2151c5b
DSH
542=back
543
544=head1 CONNECTED COMMANDS
545
546If a connection request is established with an SSL client and neither the
4b08eaf5 547B<-www> nor the B<-WWW> option has been used then normally any data received
8c73aeb6 548from the client is displayed and any key presses will be sent to the client.
4b08eaf5 549
657e60fa 550Certain single letter commands are also recognized which perform special
4b08eaf5
DSH
551operations: these are listed below.
552
553=over 4
554
555=item B<q>
556
557end the current SSL connection but still accept new connections.
558
559=item B<Q>
560
561end the current SSL connection and exit.
562
563=item B<r>
564
565renegotiate the SSL session.
566
567=item B<R>
568
569renegotiate the SSL session and request a client certificate.
570
571=item B<P>
572
573send some plain text down the underlying TCP connection: this should
574cause the client to disconnect due to a protocol violation.
575
576=item B<S>
577
578print out some session cache status information.
579
4bf73e9f
PW
580=item B<-keylogfile path>
581
582Appends TLS secrets to the specified keylog file such that external programs
583(like Wireshark) can decrypt TLS connections.
584
4b08eaf5 585=back
a2151c5b
DSH
586
587=head1 NOTES
588
589B<s_server> can be used to debug SSL clients. To accept connections from
590a web browser the command:
591
592 openssl s_server -accept 443 -www
593
594can be used for example.
595
596Most web browsers (in particular Netscape and MSIE) only support RSA cipher
597suites, so they cannot connect to servers which don't use a certificate
598carrying an RSA key or a version of OpenSSL with RSA disabled.
599
600Although specifying an empty list of CAs when requesting a client certificate
4b08eaf5
DSH
601is strictly speaking a protocol violation, some SSL clients interpret this to
602mean any CA is acceptable. This is useful for debugging purposes.
a2151c5b
DSH
603
604The session parameters can printed out using the B<sess_id> program.
605
606=head1 BUGS
607
8c73aeb6
VD
608Because this program has a lot of options and also because some of the
609techniques used are rather old, the C source of B<s_server> is rather hard to
610read and not a model of how things should be done.
611A typical SSL server program would be much simpler.
a2151c5b
DSH
612
613The output of common ciphers is wrong: it just gives the list of ciphers that
4b08eaf5 614OpenSSL recognizes and the client supports.
a2151c5b
DSH
615
616There should be a way for the B<s_server> program to print out details of any
617unknown cipher suites a client says it supports.
618
619=head1 SEE ALSO
620
6f0ac0e2 621L<SSL_CONF_cmd(3)>,
9b86974e 622L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)>
a2151c5b 623
fa7b0111
MC
624=head1 HISTORY
625
626The -no_alt_chains options was first added to OpenSSL 1.1.0.
627
e2f92610
RS
628=head1 COPYRIGHT
629
630Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
631
632Licensed under the OpenSSL license (the "License"). You may not use
633this file except in compliance with the License. You can obtain a copy
634in the file LICENSE in the source distribution or at
635L<https://www.openssl.org/source/license.html>.
636
637=cut