1b077aed3SPierre Pronchery=pod 2b077aed3SPierre Pronchery{- OpenSSL::safe::output_do_not_edit_headers(); -} 3b077aed3SPierre Pronchery 4b077aed3SPierre Pronchery=head1 NAME 5b077aed3SPierre Pronchery 6b077aed3SPierre Proncheryopenssl-s_server - SSL/TLS server program 7b077aed3SPierre Pronchery 8b077aed3SPierre Pronchery=head1 SYNOPSIS 9b077aed3SPierre Pronchery 10b077aed3SPierre ProncheryB<openssl> B<s_server> 11b077aed3SPierre Pronchery[B<-help>] 12b077aed3SPierre Pronchery[B<-port> I<+int>] 13b077aed3SPierre Pronchery[B<-accept> I<val>] 14b077aed3SPierre Pronchery[B<-unix> I<val>] 15b077aed3SPierre Pronchery[B<-4>] 16b077aed3SPierre Pronchery[B<-6>] 17b077aed3SPierre Pronchery[B<-unlink>] 18b077aed3SPierre Pronchery[B<-context> I<val>] 19b077aed3SPierre Pronchery[B<-verify> I<int>] 20b077aed3SPierre Pronchery[B<-Verify> I<int>] 21b077aed3SPierre Pronchery[B<-cert> I<infile>] 22b077aed3SPierre Pronchery[B<-cert2> I<infile>] 23b077aed3SPierre Pronchery[B<-certform> B<DER>|B<PEM>|B<P12>] 24b077aed3SPierre Pronchery[B<-cert_chain> I<infile>] 25b077aed3SPierre Pronchery[B<-build_chain>] 26b077aed3SPierre Pronchery[B<-serverinfo> I<val>] 27b077aed3SPierre Pronchery[B<-key> I<filename>|I<uri>] 28b077aed3SPierre Pronchery[B<-key2> I<filename>|I<uri>] 29b077aed3SPierre Pronchery[B<-keyform> B<DER>|B<PEM>|B<P12>|B<ENGINE>] 30b077aed3SPierre Pronchery[B<-pass> I<val>] 31b077aed3SPierre Pronchery[B<-dcert> I<infile>] 32b077aed3SPierre Pronchery[B<-dcertform> B<DER>|B<PEM>|B<P12>] 33b077aed3SPierre Pronchery[B<-dcert_chain> I<infile>] 34b077aed3SPierre Pronchery[B<-dkey> I<filename>|I<uri>] 35b077aed3SPierre Pronchery[B<-dkeyform> B<DER>|B<PEM>|B<P12>|B<ENGINE>] 36b077aed3SPierre Pronchery[B<-dpass> I<val>] 37b077aed3SPierre Pronchery[B<-nbio_test>] 38b077aed3SPierre Pronchery[B<-crlf>] 39b077aed3SPierre Pronchery[B<-debug>] 40b077aed3SPierre Pronchery[B<-msg>] 41b077aed3SPierre Pronchery[B<-msgfile> I<outfile>] 42b077aed3SPierre Pronchery[B<-state>] 43b077aed3SPierre Pronchery[B<-nocert>] 44b077aed3SPierre Pronchery[B<-quiet>] 45b077aed3SPierre Pronchery[B<-no_resume_ephemeral>] 46b077aed3SPierre Pronchery[B<-www>] 47b077aed3SPierre Pronchery[B<-WWW>] 48b077aed3SPierre Pronchery[B<-http_server_binmode>] 49b077aed3SPierre Pronchery[B<-no_ca_names>] 50b077aed3SPierre Pronchery[B<-ignore_unexpected_eof>] 51b077aed3SPierre Pronchery[B<-servername>] 52b077aed3SPierre Pronchery[B<-servername_fatal>] 53b077aed3SPierre Pronchery[B<-tlsextdebug>] 54b077aed3SPierre Pronchery[B<-HTTP>] 55b077aed3SPierre Pronchery[B<-id_prefix> I<val>] 56b077aed3SPierre Pronchery[B<-keymatexport> I<val>] 57b077aed3SPierre Pronchery[B<-keymatexportlen> I<+int>] 58b077aed3SPierre Pronchery[B<-CRL> I<infile>] 59b077aed3SPierre Pronchery[B<-CRLform> B<DER>|B<PEM>] 60b077aed3SPierre Pronchery[B<-crl_download>] 61b077aed3SPierre Pronchery[B<-chainCAfile> I<infile>] 62b077aed3SPierre Pronchery[B<-chainCApath> I<dir>] 63b077aed3SPierre Pronchery[B<-chainCAstore> I<uri>] 64b077aed3SPierre Pronchery[B<-verifyCAfile> I<infile>] 65b077aed3SPierre Pronchery[B<-verifyCApath> I<dir>] 66b077aed3SPierre Pronchery[B<-verifyCAstore> I<uri>] 67b077aed3SPierre Pronchery[B<-no_cache>] 68b077aed3SPierre Pronchery[B<-ext_cache>] 69b077aed3SPierre Pronchery[B<-verify_return_error>] 70b077aed3SPierre Pronchery[B<-verify_quiet>] 71b077aed3SPierre Pronchery[B<-ign_eof>] 72b077aed3SPierre Pronchery[B<-no_ign_eof>] 73b077aed3SPierre Pronchery[B<-no_etm>] 74b077aed3SPierre Pronchery[B<-status>] 75b077aed3SPierre Pronchery[B<-status_verbose>] 76b077aed3SPierre Pronchery[B<-status_timeout> I<int>] 77b077aed3SPierre Pronchery[B<-proxy> I<[http[s]://][userinfo@]host[:port][/path]>] 78b077aed3SPierre Pronchery[B<-no_proxy> I<addresses>] 79b077aed3SPierre Pronchery[B<-status_url> I<val>] 80b077aed3SPierre Pronchery[B<-status_file> I<infile>] 81b077aed3SPierre Pronchery[B<-ssl_config> I<val>] 82b077aed3SPierre Pronchery[B<-trace>] 83b077aed3SPierre Pronchery[B<-security_debug>] 84b077aed3SPierre Pronchery[B<-security_debug_verbose>] 85b077aed3SPierre Pronchery[B<-brief>] 86b077aed3SPierre Pronchery[B<-rev>] 87b077aed3SPierre Pronchery[B<-async>] 88b077aed3SPierre Pronchery[B<-max_send_frag> I<+int>] 89b077aed3SPierre Pronchery[B<-split_send_frag> I<+int>] 90b077aed3SPierre Pronchery[B<-max_pipelines> I<+int>] 91b077aed3SPierre Pronchery[B<-naccept> I<+int>] 92b077aed3SPierre Pronchery[B<-read_buf> I<+int>] 93b077aed3SPierre Pronchery[B<-bugs>] 94b077aed3SPierre Pronchery[B<-no_comp>] 95b077aed3SPierre Pronchery[B<-comp>] 96b077aed3SPierre Pronchery[B<-no_ticket>] 97b077aed3SPierre Pronchery[B<-serverpref>] 98b077aed3SPierre Pronchery[B<-legacy_renegotiation>] 99b077aed3SPierre Pronchery[B<-no_renegotiation>] 100b077aed3SPierre Pronchery[B<-no_resumption_on_reneg>] 101b077aed3SPierre Pronchery[B<-allow_no_dhe_kex>] 102b077aed3SPierre Pronchery[B<-prioritize_chacha>] 103b077aed3SPierre Pronchery[B<-strict>] 104b077aed3SPierre Pronchery[B<-sigalgs> I<val>] 105b077aed3SPierre Pronchery[B<-client_sigalgs> I<val>] 106b077aed3SPierre Pronchery[B<-groups> I<val>] 107b077aed3SPierre Pronchery[B<-curves> I<val>] 108b077aed3SPierre Pronchery[B<-named_curve> I<val>] 109b077aed3SPierre Pronchery[B<-cipher> I<val>] 110b077aed3SPierre Pronchery[B<-ciphersuites> I<val>] 111b077aed3SPierre Pronchery[B<-dhparam> I<infile>] 112b077aed3SPierre Pronchery[B<-record_padding> I<val>] 113b077aed3SPierre Pronchery[B<-debug_broken_protocol>] 114b077aed3SPierre Pronchery[B<-nbio>] 115b077aed3SPierre Pronchery[B<-psk_identity> I<val>] 116b077aed3SPierre Pronchery[B<-psk_hint> I<val>] 117b077aed3SPierre Pronchery[B<-psk> I<val>] 118b077aed3SPierre Pronchery[B<-psk_session> I<file>] 119b077aed3SPierre Pronchery[B<-srpvfile> I<infile>] 120b077aed3SPierre Pronchery[B<-srpuserseed> I<val>] 121b077aed3SPierre Pronchery[B<-timeout>] 122b077aed3SPierre Pronchery[B<-mtu> I<+int>] 123b077aed3SPierre Pronchery[B<-listen>] 124b077aed3SPierre Pronchery[B<-sctp>] 125b077aed3SPierre Pronchery[B<-sctp_label_bug>] 126b077aed3SPierre Pronchery[B<-use_srtp> I<val>] 127b077aed3SPierre Pronchery[B<-no_dhe>] 128b077aed3SPierre Pronchery[B<-nextprotoneg> I<val>] 129b077aed3SPierre Pronchery[B<-alpn> I<val>] 130b077aed3SPierre Pronchery[B<-sendfile>] 131b077aed3SPierre Pronchery[B<-keylogfile> I<outfile>] 132b077aed3SPierre Pronchery[B<-recv_max_early_data> I<int>] 133b077aed3SPierre Pronchery[B<-max_early_data> I<int>] 134b077aed3SPierre Pronchery[B<-early_data>] 135b077aed3SPierre Pronchery[B<-stateless>] 136b077aed3SPierre Pronchery[B<-anti_replay>] 137b077aed3SPierre Pronchery[B<-no_anti_replay>] 138b077aed3SPierre Pronchery[B<-num_tickets>] 139b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_name_synopsis -} 140b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_version_synopsis -} 141b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_v_synopsis -} 142b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_s_synopsis -} 143b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_x_synopsis -} 144b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_trust_synopsis -} 145b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_r_synopsis -} 146b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_engine_synopsis -}{- $OpenSSL::safe::opt_provider_synopsis -} 147b077aed3SPierre Pronchery 148b077aed3SPierre Pronchery=head1 DESCRIPTION 149b077aed3SPierre Pronchery 150b077aed3SPierre ProncheryThis command implements a generic SSL/TLS server which 151b077aed3SPierre Proncherylistens for connections on a given port using SSL/TLS. 152b077aed3SPierre Pronchery 153b077aed3SPierre Pronchery=head1 OPTIONS 154b077aed3SPierre Pronchery 155b077aed3SPierre ProncheryIn addition to the options below, this command also supports 156b077aed3SPierre Proncherythe common and server only options documented 157b077aed3SPierre ProncheryL<SSL_CONF_cmd(3)/Supported Command Line Commands> 158b077aed3SPierre Pronchery 159b077aed3SPierre Pronchery=over 4 160b077aed3SPierre Pronchery 161b077aed3SPierre Pronchery=item B<-help> 162b077aed3SPierre Pronchery 163b077aed3SPierre ProncheryPrint out a usage message. 164b077aed3SPierre Pronchery 165b077aed3SPierre Pronchery=item B<-port> I<+int> 166b077aed3SPierre Pronchery 167b077aed3SPierre ProncheryThe TCP port to listen on for connections. If not specified 4433 is used. 168b077aed3SPierre Pronchery 169b077aed3SPierre Pronchery=item B<-accept> I<val> 170b077aed3SPierre Pronchery 171b077aed3SPierre ProncheryThe optional TCP host and port to listen on for connections. If not specified, *:4433 is used. 172b077aed3SPierre Pronchery 173b077aed3SPierre Pronchery=item B<-unix> I<val> 174b077aed3SPierre Pronchery 175b077aed3SPierre ProncheryUnix domain socket to accept on. 176b077aed3SPierre Pronchery 177b077aed3SPierre Pronchery=item B<-4> 178b077aed3SPierre Pronchery 179b077aed3SPierre ProncheryUse IPv4 only. 180b077aed3SPierre Pronchery 181b077aed3SPierre Pronchery=item B<-6> 182b077aed3SPierre Pronchery 183b077aed3SPierre ProncheryUse IPv6 only. 184b077aed3SPierre Pronchery 185b077aed3SPierre Pronchery=item B<-unlink> 186b077aed3SPierre Pronchery 187b077aed3SPierre ProncheryFor -unix, unlink any existing socket first. 188b077aed3SPierre Pronchery 189b077aed3SPierre Pronchery=item B<-context> I<val> 190b077aed3SPierre Pronchery 191b077aed3SPierre ProncherySets the SSL context id. It can be given any string value. If this option 192b077aed3SPierre Proncheryis not present a default value will be used. 193b077aed3SPierre Pronchery 194b077aed3SPierre Pronchery=item B<-verify> I<int>, B<-Verify> I<int> 195b077aed3SPierre Pronchery 196b077aed3SPierre ProncheryThe verify depth to use. This specifies the maximum length of the 197b077aed3SPierre Proncheryclient certificate chain and makes the server request a certificate from 198b077aed3SPierre Proncherythe client. With the B<-verify> option a certificate is requested but the 199b077aed3SPierre Proncheryclient does not have to send one, with the B<-Verify> option the client 200b077aed3SPierre Proncherymust supply a certificate or an error occurs. 201b077aed3SPierre Pronchery 202b077aed3SPierre ProncheryIf the cipher suite cannot request a client certificate (for example an 203b077aed3SPierre Proncheryanonymous cipher suite or PSK) this option has no effect. 204b077aed3SPierre Pronchery 205b077aed3SPierre Pronchery=item B<-cert> I<infile> 206b077aed3SPierre Pronchery 207b077aed3SPierre ProncheryThe certificate to use, most servers cipher suites require the use of a 208b077aed3SPierre Proncherycertificate and some require a certificate with a certain public key type: 209b077aed3SPierre Proncheryfor example the DSS cipher suites require a certificate containing a DSS 210b077aed3SPierre Pronchery(DSA) key. If not specified then the filename F<server.pem> will be used. 211b077aed3SPierre Pronchery 212b077aed3SPierre Pronchery=item B<-cert2> I<infile> 213b077aed3SPierre Pronchery 214b077aed3SPierre ProncheryThe certificate file to use for servername; default is C<server2.pem>. 215b077aed3SPierre Pronchery 216b077aed3SPierre Pronchery=item B<-certform> B<DER>|B<PEM>|B<P12> 217b077aed3SPierre Pronchery 218b077aed3SPierre ProncheryThe server certificate file format; unspecified by default. 219b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details. 220b077aed3SPierre Pronchery 221b077aed3SPierre Pronchery=item B<-cert_chain> 222b077aed3SPierre Pronchery 223b077aed3SPierre ProncheryA file or URI of untrusted certificates to use when attempting to build the 224b077aed3SPierre Proncherycertificate chain related to the certificate specified via the B<-cert> option. 225b077aed3SPierre ProncheryThe input can be in PEM, DER, or PKCS#12 format. 226b077aed3SPierre Pronchery 227b077aed3SPierre Pronchery=item B<-build_chain> 228b077aed3SPierre Pronchery 229b077aed3SPierre ProncherySpecify whether the application should build the server certificate chain to be 230b077aed3SPierre Proncheryprovided to the client. 231b077aed3SPierre Pronchery 232b077aed3SPierre Pronchery=item B<-serverinfo> I<val> 233b077aed3SPierre Pronchery 234b077aed3SPierre ProncheryA file containing one or more blocks of PEM data. Each PEM block 235b077aed3SPierre Proncherymust encode a TLS ServerHello extension (2 bytes type, 2 bytes length, 236b077aed3SPierre Proncheryfollowed by "length" bytes of extension data). If the client sends 237b077aed3SPierre Proncheryan empty TLS ClientHello extension matching the type, the corresponding 238b077aed3SPierre ProncheryServerHello extension will be returned. 239b077aed3SPierre Pronchery 240b077aed3SPierre Pronchery=item B<-key> I<filename>|I<uri> 241b077aed3SPierre Pronchery 242b077aed3SPierre ProncheryThe private key to use. If not specified then the certificate file will 243b077aed3SPierre Proncherybe used. 244b077aed3SPierre Pronchery 245b077aed3SPierre Pronchery=item B<-key2> I<filename>|I<uri> 246b077aed3SPierre Pronchery 247b077aed3SPierre ProncheryThe private Key file to use for servername if not given via B<-cert2>. 248b077aed3SPierre Pronchery 249b077aed3SPierre Pronchery=item B<-keyform> B<DER>|B<PEM>|B<P12>|B<ENGINE> 250b077aed3SPierre Pronchery 251b077aed3SPierre ProncheryThe key format; unspecified by default. 252b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details. 253b077aed3SPierre Pronchery 254b077aed3SPierre Pronchery=item B<-pass> I<val> 255b077aed3SPierre Pronchery 256b077aed3SPierre ProncheryThe private key and certificate file password source. 257b077aed3SPierre ProncheryFor more information about the format of I<val>, 258b077aed3SPierre Proncherysee L<openssl-passphrase-options(1)>. 259b077aed3SPierre Pronchery 260b077aed3SPierre Pronchery=item B<-dcert> I<infile>, B<-dkey> I<filename>|I<uri> 261b077aed3SPierre Pronchery 262b077aed3SPierre ProncherySpecify an additional certificate and private key, these behave in the 263b077aed3SPierre Proncherysame manner as the B<-cert> and B<-key> options except there is no default 264b077aed3SPierre Proncheryif they are not specified (no additional certificate and key is used). As 265b077aed3SPierre Proncherynoted above some cipher suites require a certificate containing a key of 266b077aed3SPierre Proncherya certain type. Some cipher suites need a certificate carrying an RSA key 267b077aed3SPierre Proncheryand some a DSS (DSA) key. By using RSA and DSS certificates and keys 268b077aed3SPierre Proncherya server can support clients which only support RSA or DSS cipher suites 269b077aed3SPierre Proncheryby using an appropriate certificate. 270b077aed3SPierre Pronchery 271b077aed3SPierre Pronchery=item B<-dcert_chain> 272b077aed3SPierre Pronchery 273b077aed3SPierre ProncheryA file or URI of untrusted certificates to use when attempting to build the 274b077aed3SPierre Proncheryserver certificate chain when a certificate specified via the B<-dcert> option 275b077aed3SPierre Proncheryis in use. 276b077aed3SPierre ProncheryThe input can be in PEM, DER, or PKCS#12 format. 277b077aed3SPierre Pronchery 278b077aed3SPierre Pronchery=item B<-dcertform> B<DER>|B<PEM>|B<P12> 279b077aed3SPierre Pronchery 280b077aed3SPierre ProncheryThe format of the additional certificate file; unspecified by default. 281b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details. 282b077aed3SPierre Pronchery 283b077aed3SPierre Pronchery=item B<-dkeyform> B<DER>|B<PEM>|B<P12>|B<ENGINE> 284b077aed3SPierre Pronchery 285b077aed3SPierre ProncheryThe format of the additional private key; unspecified by default. 286b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details. 287b077aed3SPierre Pronchery 288b077aed3SPierre Pronchery=item B<-dpass> I<val> 289b077aed3SPierre Pronchery 290b077aed3SPierre ProncheryThe passphrase for the additional private key and certificate. 291b077aed3SPierre ProncheryFor more information about the format of I<val>, 292b077aed3SPierre Proncherysee L<openssl-passphrase-options(1)>. 293b077aed3SPierre Pronchery 294b077aed3SPierre Pronchery=item B<-nbio_test> 295b077aed3SPierre Pronchery 296b077aed3SPierre ProncheryTests non blocking I/O. 297b077aed3SPierre Pronchery 298b077aed3SPierre Pronchery=item B<-crlf> 299b077aed3SPierre Pronchery 300b077aed3SPierre ProncheryThis option translated a line feed from the terminal into CR+LF. 301b077aed3SPierre Pronchery 302b077aed3SPierre Pronchery=item B<-debug> 303b077aed3SPierre Pronchery 304b077aed3SPierre ProncheryPrint extensive debugging information including a hex dump of all traffic. 305b077aed3SPierre Pronchery 306b077aed3SPierre Pronchery=item B<-security_debug> 307b077aed3SPierre Pronchery 308b077aed3SPierre ProncheryPrint output from SSL/TLS security framework. 309b077aed3SPierre Pronchery 310b077aed3SPierre Pronchery=item B<-security_debug_verbose> 311b077aed3SPierre Pronchery 312b077aed3SPierre ProncheryPrint more output from SSL/TLS security framework 313b077aed3SPierre Pronchery 314b077aed3SPierre Pronchery=item B<-msg> 315b077aed3SPierre Pronchery 316b077aed3SPierre ProncheryShow all protocol messages with hex dump. 317b077aed3SPierre Pronchery 318b077aed3SPierre Pronchery=item B<-msgfile> I<outfile> 319b077aed3SPierre Pronchery 320b077aed3SPierre ProncheryFile to send output of B<-msg> or B<-trace> to, default standard output. 321b077aed3SPierre Pronchery 322b077aed3SPierre Pronchery=item B<-state> 323b077aed3SPierre Pronchery 324b077aed3SPierre ProncheryPrints the SSL session states. 325b077aed3SPierre Pronchery 326b077aed3SPierre Pronchery=item B<-CRL> I<infile> 327b077aed3SPierre Pronchery 328b077aed3SPierre ProncheryThe CRL file to use. 329b077aed3SPierre Pronchery 330b077aed3SPierre Pronchery=item B<-CRLform> B<DER>|B<PEM> 331b077aed3SPierre Pronchery 332b077aed3SPierre ProncheryThe CRL file format; unspecified by default. 333b077aed3SPierre ProncherySee L<openssl-format-options(1)> for details. 334b077aed3SPierre Pronchery 335b077aed3SPierre Pronchery=item B<-crl_download> 336b077aed3SPierre Pronchery 337b077aed3SPierre ProncheryDownload CRLs from distribution points given in CDP extensions of certificates 338b077aed3SPierre Pronchery 339b077aed3SPierre Pronchery=item B<-verifyCAfile> I<filename> 340b077aed3SPierre Pronchery 341b077aed3SPierre ProncheryA file in PEM format CA containing trusted certificates to use 342b077aed3SPierre Proncheryfor verifying client certificates. 343b077aed3SPierre Pronchery 344b077aed3SPierre Pronchery=item B<-verifyCApath> I<dir> 345b077aed3SPierre Pronchery 346b077aed3SPierre ProncheryA directory containing trusted certificates to use 347b077aed3SPierre Proncheryfor verifying client certificates. 348b077aed3SPierre ProncheryThis directory must be in "hash format", 349b077aed3SPierre Proncherysee L<openssl-verify(1)> for more information. 350b077aed3SPierre Pronchery 351b077aed3SPierre Pronchery=item B<-verifyCAstore> I<uri> 352b077aed3SPierre Pronchery 353b077aed3SPierre ProncheryThe URI of a store containing trusted certificates to use 354b077aed3SPierre Proncheryfor verifying client certificates. 355b077aed3SPierre Pronchery 356b077aed3SPierre Pronchery=item B<-chainCAfile> I<file> 357b077aed3SPierre Pronchery 358b077aed3SPierre ProncheryA file in PEM format containing trusted certificates to use 359b077aed3SPierre Proncherywhen attempting to build the server certificate chain. 360b077aed3SPierre Pronchery 361b077aed3SPierre Pronchery=item B<-chainCApath> I<dir> 362b077aed3SPierre Pronchery 363b077aed3SPierre ProncheryA directory containing trusted certificates to use 364b077aed3SPierre Proncheryfor building the server certificate chain provided to the client. 365b077aed3SPierre ProncheryThis directory must be in "hash format", 366b077aed3SPierre Proncherysee L<openssl-verify(1)> for more information. 367b077aed3SPierre Pronchery 368b077aed3SPierre Pronchery=item B<-chainCAstore> I<uri> 369b077aed3SPierre Pronchery 370b077aed3SPierre ProncheryThe URI of a store containing trusted certificates to use 371b077aed3SPierre Proncheryfor building the server certificate chain provided to the client. 372b077aed3SPierre ProncheryThe URI may indicate a single certificate, as well as a collection of them. 373b077aed3SPierre ProncheryWith URIs in the C<file:> scheme, this acts as B<-chainCAfile> or 374b077aed3SPierre ProncheryB<-chainCApath>, depending on if the URI indicates a directory or a 375b077aed3SPierre Proncherysingle file. 376b077aed3SPierre ProncherySee L<ossl_store-file(7)> for more information on the C<file:> scheme. 377b077aed3SPierre Pronchery 378b077aed3SPierre Pronchery=item B<-nocert> 379b077aed3SPierre Pronchery 380b077aed3SPierre ProncheryIf this option is set then no certificate is used. This restricts the 381b077aed3SPierre Proncherycipher suites available to the anonymous ones (currently just anonymous 382b077aed3SPierre ProncheryDH). 383b077aed3SPierre Pronchery 384b077aed3SPierre Pronchery=item B<-quiet> 385b077aed3SPierre Pronchery 386b077aed3SPierre ProncheryInhibit printing of session and certificate information. 387b077aed3SPierre Pronchery 388b077aed3SPierre Pronchery=item B<-no_resume_ephemeral> 389b077aed3SPierre Pronchery 390b077aed3SPierre ProncheryDisable caching and tickets if ephemeral (EC)DH is used. 391b077aed3SPierre Pronchery 392b077aed3SPierre Pronchery=item B<-tlsextdebug> 393b077aed3SPierre Pronchery 394b077aed3SPierre ProncheryPrint a hex dump of any TLS extensions received from the server. 395b077aed3SPierre Pronchery 396b077aed3SPierre Pronchery=item B<-www> 397b077aed3SPierre Pronchery 398b077aed3SPierre ProncherySends a status message back to the client when it connects. This includes 399b077aed3SPierre Proncheryinformation about the ciphers used and various session parameters. 400b077aed3SPierre ProncheryThe output is in HTML format so this option can be used with a web browser. 401b077aed3SPierre ProncheryThe special URL C</renegcert> turns on client cert validation, and C</reneg> 402b077aed3SPierre Proncherytells the server to request renegotiation. 403b077aed3SPierre ProncheryThe B<-early_data> option cannot be used with this option. 404b077aed3SPierre Pronchery 405b077aed3SPierre Pronchery=item B<-WWW>, B<-HTTP> 406b077aed3SPierre Pronchery 407b077aed3SPierre ProncheryEmulates a simple web server. Pages will be resolved relative to the 408b077aed3SPierre Proncherycurrent directory, for example if the URL C<https://myhost/page.html> is 409b077aed3SPierre Proncheryrequested the file F<./page.html> will be sent. 410b077aed3SPierre ProncheryIf the B<-HTTP> flag is used, the files are sent directly, and should contain 411b077aed3SPierre Proncheryany HTTP response headers (including status response line). 412b077aed3SPierre ProncheryIf the B<-WWW> option is used, 413b077aed3SPierre Proncherythe response headers are generated by the server, and the file extension is 414b077aed3SPierre Proncheryexamined to determine the B<Content-Type> header. 415b077aed3SPierre ProncheryExtensions of C<html>, C<htm>, and C<php> are C<text/html> and all others are 416b077aed3SPierre ProncheryC<text/plain>. 417b077aed3SPierre ProncheryIn addition, the special URL C</stats> will return status 418b077aed3SPierre Proncheryinformation like the B<-www> option. 419b077aed3SPierre ProncheryNeither of these options can be used in conjunction with B<-early_data>. 420b077aed3SPierre Pronchery 421b077aed3SPierre Pronchery=item B<-http_server_binmode> 422b077aed3SPierre Pronchery 423b077aed3SPierre ProncheryWhen acting as web-server (using option B<-WWW> or B<-HTTP>) open files requested 424b077aed3SPierre Proncheryby the client in binary mode. 425b077aed3SPierre Pronchery 426b077aed3SPierre Pronchery=item B<-no_ca_names> 427b077aed3SPierre Pronchery 428b077aed3SPierre ProncheryDisable TLS Extension CA Names. You may want to disable it for security reasons 429b077aed3SPierre Proncheryor for compatibility with some Windows TLS implementations crashing when this 430b077aed3SPierre Proncheryextension is larger than 1024 bytes. 431b077aed3SPierre Pronchery 432b077aed3SPierre Pronchery=item B<-ignore_unexpected_eof> 433b077aed3SPierre Pronchery 434b077aed3SPierre ProncherySome TLS implementations do not send the mandatory close_notify alert on 435b077aed3SPierre Proncheryshutdown. If the application tries to wait for the close_notify alert but the 436b077aed3SPierre Proncherypeer closes the connection without sending it, an error is generated. When this 437b077aed3SPierre Proncheryoption is enabled the peer does not need to send the close_notify alert and a 438b077aed3SPierre Proncheryclosed connection will be treated as if the close_notify alert was received. 439b077aed3SPierre ProncheryFor more information on shutting down a connection, see L<SSL_shutdown(3)>. 440b077aed3SPierre Pronchery 441b077aed3SPierre Pronchery=item B<-servername> 442b077aed3SPierre Pronchery 443b077aed3SPierre ProncheryServername for HostName TLS extension. 444b077aed3SPierre Pronchery 445b077aed3SPierre Pronchery=item B<-servername_fatal> 446b077aed3SPierre Pronchery 447b077aed3SPierre ProncheryOn servername mismatch send fatal alert (default: warning alert). 448b077aed3SPierre Pronchery 449b077aed3SPierre Pronchery=item B<-id_prefix> I<val> 450b077aed3SPierre Pronchery 451b077aed3SPierre ProncheryGenerate SSL/TLS session IDs prefixed by I<val>. This is mostly useful 452b077aed3SPierre Proncheryfor testing any SSL/TLS code (e.g. proxies) that wish to deal with multiple 453b077aed3SPierre Proncheryservers, when each of which might be generating a unique range of session 454b077aed3SPierre ProncheryIDs (e.g. with a certain prefix). 455b077aed3SPierre Pronchery 456b077aed3SPierre Pronchery=item B<-keymatexport> 457b077aed3SPierre Pronchery 458b077aed3SPierre ProncheryExport keying material using label. 459b077aed3SPierre Pronchery 460b077aed3SPierre Pronchery=item B<-keymatexportlen> 461b077aed3SPierre Pronchery 462b077aed3SPierre ProncheryExport the given number of bytes of keying material; default 20. 463b077aed3SPierre Pronchery 464b077aed3SPierre Pronchery=item B<-no_cache> 465b077aed3SPierre Pronchery 466b077aed3SPierre ProncheryDisable session cache. 467b077aed3SPierre Pronchery 468b077aed3SPierre Pronchery=item B<-ext_cache>. 469b077aed3SPierre Pronchery 470b077aed3SPierre ProncheryDisable internal cache, set up and use external cache. 471b077aed3SPierre Pronchery 472b077aed3SPierre Pronchery=item B<-verify_return_error> 473b077aed3SPierre Pronchery 474b077aed3SPierre ProncheryVerification errors normally just print a message but allow the 475b077aed3SPierre Proncheryconnection to continue, for debugging purposes. 476b077aed3SPierre ProncheryIf this option is used, then verification errors close the connection. 477b077aed3SPierre Pronchery 478b077aed3SPierre Pronchery=item B<-verify_quiet> 479b077aed3SPierre Pronchery 480b077aed3SPierre ProncheryNo verify output except verify errors. 481b077aed3SPierre Pronchery 482b077aed3SPierre Pronchery=item B<-ign_eof> 483b077aed3SPierre Pronchery 484b077aed3SPierre ProncheryIgnore input EOF (default: when B<-quiet>). 485b077aed3SPierre Pronchery 486b077aed3SPierre Pronchery=item B<-no_ign_eof> 487b077aed3SPierre Pronchery 488b077aed3SPierre ProncheryDo not ignore input EOF. 489b077aed3SPierre Pronchery 490b077aed3SPierre Pronchery=item B<-no_etm> 491b077aed3SPierre Pronchery 492b077aed3SPierre ProncheryDisable Encrypt-then-MAC negotiation. 493b077aed3SPierre Pronchery 494b077aed3SPierre Pronchery=item B<-status> 495b077aed3SPierre Pronchery 496b077aed3SPierre ProncheryEnables certificate status request support (aka OCSP stapling). 497b077aed3SPierre Pronchery 498b077aed3SPierre Pronchery=item B<-status_verbose> 499b077aed3SPierre Pronchery 500b077aed3SPierre ProncheryEnables certificate status request support (aka OCSP stapling) and gives 501b077aed3SPierre Proncherya verbose printout of the OCSP response. 502b077aed3SPierre Pronchery 503b077aed3SPierre Pronchery=item B<-status_timeout> I<int> 504b077aed3SPierre Pronchery 505b077aed3SPierre ProncherySets the timeout for OCSP response to I<int> seconds. 506b077aed3SPierre Pronchery 507b077aed3SPierre Pronchery=item B<-proxy> I<[http[s]://][userinfo@]host[:port][/path]> 508b077aed3SPierre Pronchery 509b077aed3SPierre ProncheryThe HTTP(S) proxy server to use for reaching the OCSP server unless B<-no_proxy> 510b077aed3SPierre Proncheryapplies, see below. 511b077aed3SPierre ProncheryThe proxy port defaults to 80 or 443 if the scheme is C<https>; apart from that 512b077aed3SPierre Proncherythe optional C<http://> or C<https://> prefix is ignored, 513b077aed3SPierre Proncheryas well as any userinfo and path components. 514b077aed3SPierre ProncheryDefaults to the environment variable C<http_proxy> if set, else C<HTTP_PROXY> 515b077aed3SPierre Proncheryin case no TLS is used, otherwise C<https_proxy> if set, else C<HTTPS_PROXY>. 516b077aed3SPierre Pronchery 517b077aed3SPierre Pronchery=item B<-no_proxy> I<addresses> 518b077aed3SPierre Pronchery 519b077aed3SPierre ProncheryList of IP addresses and/or DNS names of servers 520b077aed3SPierre Proncherynot to use an HTTP(S) proxy for, separated by commas and/or whitespace 521b077aed3SPierre Pronchery(where in the latter case the whole argument must be enclosed in "..."). 522b077aed3SPierre ProncheryDefault is from the environment variable C<no_proxy> if set, else C<NO_PROXY>. 523b077aed3SPierre Pronchery 524b077aed3SPierre Pronchery=item B<-status_url> I<val> 525b077aed3SPierre Pronchery 526b077aed3SPierre ProncherySets a fallback responder URL to use if no responder URL is present in the 527b077aed3SPierre Proncheryserver certificate. Without this option an error is returned if the server 528b077aed3SPierre Proncherycertificate does not contain a responder address. 529b077aed3SPierre ProncheryThe optional userinfo and fragment URL components are ignored. 530b077aed3SPierre ProncheryAny given query component is handled as part of the path component. 531b077aed3SPierre Pronchery 532b077aed3SPierre Pronchery=item B<-status_file> I<infile> 533b077aed3SPierre Pronchery 534b077aed3SPierre ProncheryOverrides any OCSP responder URLs from the certificate and always provides the 535b077aed3SPierre ProncheryOCSP Response stored in the file. The file must be in DER format. 536b077aed3SPierre Pronchery 537b077aed3SPierre Pronchery=item B<-ssl_config> I<val> 538b077aed3SPierre Pronchery 539b077aed3SPierre ProncheryConfigure SSL_CTX using the given configuration value. 540b077aed3SPierre Pronchery 541b077aed3SPierre Pronchery=item B<-trace> 542b077aed3SPierre Pronchery 543b077aed3SPierre ProncheryShow verbose trace output of protocol messages. 544b077aed3SPierre Pronchery 545b077aed3SPierre Pronchery=item B<-brief> 546b077aed3SPierre Pronchery 547b077aed3SPierre ProncheryProvide a brief summary of connection parameters instead of the normal verbose 548b077aed3SPierre Proncheryoutput. 549b077aed3SPierre Pronchery 550b077aed3SPierre Pronchery=item B<-rev> 551b077aed3SPierre Pronchery 552b077aed3SPierre ProncherySimple echo server that sends back received text reversed. Also sets B<-brief>. 553b077aed3SPierre ProncheryCannot be used in conjunction with B<-early_data>. 554b077aed3SPierre Pronchery 555b077aed3SPierre Pronchery=item B<-async> 556b077aed3SPierre Pronchery 557b077aed3SPierre ProncherySwitch on asynchronous mode. Cryptographic operations will be performed 558b077aed3SPierre Proncheryasynchronously. This will only have an effect if an asynchronous capable engine 559b077aed3SPierre Proncheryis also used via the B<-engine> option. For test purposes the dummy async engine 560b077aed3SPierre Pronchery(dasync) can be used (if available). 561b077aed3SPierre Pronchery 562b077aed3SPierre Pronchery=item B<-max_send_frag> I<+int> 563b077aed3SPierre Pronchery 564b077aed3SPierre ProncheryThe maximum size of data fragment to send. 565b077aed3SPierre ProncherySee L<SSL_CTX_set_max_send_fragment(3)> for further information. 566b077aed3SPierre Pronchery 567b077aed3SPierre Pronchery=item B<-split_send_frag> I<+int> 568b077aed3SPierre Pronchery 569b077aed3SPierre ProncheryThe size used to split data for encrypt pipelines. If more data is written in 570b077aed3SPierre Proncheryone go than this value then it will be split into multiple pipelines, up to the 571b077aed3SPierre Proncherymaximum number of pipelines defined by max_pipelines. This only has an effect if 572b077aed3SPierre Proncherya suitable cipher suite has been negotiated, an engine that supports pipelining 573b077aed3SPierre Proncheryhas been loaded, and max_pipelines is greater than 1. See 574b077aed3SPierre ProncheryL<SSL_CTX_set_split_send_fragment(3)> for further information. 575b077aed3SPierre Pronchery 576b077aed3SPierre Pronchery=item B<-max_pipelines> I<+int> 577b077aed3SPierre Pronchery 578b077aed3SPierre ProncheryThe maximum number of encrypt/decrypt pipelines to be used. This will only have 579b077aed3SPierre Proncheryan effect if an engine has been loaded that supports pipelining (e.g. the dasync 580b077aed3SPierre Proncheryengine) and a suitable cipher suite has been negotiated. The default value is 1. 581b077aed3SPierre ProncherySee L<SSL_CTX_set_max_pipelines(3)> for further information. 582b077aed3SPierre Pronchery 583b077aed3SPierre Pronchery=item B<-naccept> I<+int> 584b077aed3SPierre Pronchery 585b077aed3SPierre ProncheryThe server will exit after receiving the specified number of connections, 586b077aed3SPierre Proncherydefault unlimited. 587b077aed3SPierre Pronchery 588b077aed3SPierre Pronchery=item B<-read_buf> I<+int> 589b077aed3SPierre Pronchery 590b077aed3SPierre ProncheryThe default read buffer size to be used for connections. This will only have an 591b077aed3SPierre Proncheryeffect if the buffer size is larger than the size that would otherwise be used 592b077aed3SPierre Proncheryand pipelining is in use (see L<SSL_CTX_set_default_read_buffer_len(3)> for 593b077aed3SPierre Proncheryfurther information). 594b077aed3SPierre Pronchery 595b077aed3SPierre Pronchery=item B<-bugs> 596b077aed3SPierre Pronchery 597b077aed3SPierre ProncheryThere are several known bugs in SSL and TLS implementations. Adding this 598b077aed3SPierre Proncheryoption enables various workarounds. 599b077aed3SPierre Pronchery 600b077aed3SPierre Pronchery=item B<-no_comp> 601b077aed3SPierre Pronchery 602b077aed3SPierre ProncheryDisable negotiation of TLS compression. 603b077aed3SPierre ProncheryTLS compression is not recommended and is off by default as of 604b077aed3SPierre ProncheryOpenSSL 1.1.0. 605b077aed3SPierre Pronchery 606b077aed3SPierre Pronchery=item B<-comp> 607b077aed3SPierre Pronchery 608b077aed3SPierre ProncheryEnable negotiation of TLS compression. 609b077aed3SPierre ProncheryThis option was introduced in OpenSSL 1.1.0. 610b077aed3SPierre ProncheryTLS compression is not recommended and is off by default as of 611b077aed3SPierre ProncheryOpenSSL 1.1.0. 612b077aed3SPierre Pronchery 613b077aed3SPierre Pronchery=item B<-no_ticket> 614b077aed3SPierre Pronchery 615b077aed3SPierre ProncheryDisable RFC4507bis session ticket support. This option has no effect if TLSv1.3 616b077aed3SPierre Proncheryis negotiated. See B<-num_tickets>. 617b077aed3SPierre Pronchery 618b077aed3SPierre Pronchery=item B<-num_tickets> 619b077aed3SPierre Pronchery 620b077aed3SPierre ProncheryControl the number of tickets that will be sent to the client after a full 621b077aed3SPierre Proncheryhandshake in TLSv1.3. The default number of tickets is 2. This option does not 622b077aed3SPierre Proncheryaffect the number of tickets sent after a resumption handshake. 623b077aed3SPierre Pronchery 624b077aed3SPierre Pronchery=item B<-serverpref> 625b077aed3SPierre Pronchery 626b077aed3SPierre ProncheryUse the server's cipher preferences, rather than the client's preferences. 627b077aed3SPierre Pronchery 628b077aed3SPierre Pronchery=item B<-prioritize_chacha> 629b077aed3SPierre Pronchery 630b077aed3SPierre ProncheryPrioritize ChaCha ciphers when preferred by clients. Requires B<-serverpref>. 631b077aed3SPierre Pronchery 632b077aed3SPierre Pronchery=item B<-no_resumption_on_reneg> 633b077aed3SPierre Pronchery 634b077aed3SPierre ProncherySet the B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> option. 635b077aed3SPierre Pronchery 636b077aed3SPierre Pronchery=item B<-client_sigalgs> I<val> 637b077aed3SPierre Pronchery 638b077aed3SPierre ProncherySignature algorithms to support for client certificate authentication 639b077aed3SPierre Pronchery(colon-separated list). 640b077aed3SPierre Pronchery 641b077aed3SPierre Pronchery=item B<-named_curve> I<val> 642b077aed3SPierre Pronchery 643b077aed3SPierre ProncherySpecifies the elliptic curve to use. NOTE: this is single curve, not a list. 644*a7148ab3SEnji Cooper 645*a7148ab3SEnji CooperThe list of all supported groups includes named EC parameters as well as X25519 646*a7148ab3SEnji Cooperand X448 or FFDHE groups, and may also include groups implemented in 3rd-party 647*a7148ab3SEnji Cooperproviders. For a list of named EC parameters, use: 648b077aed3SPierre Pronchery 649b077aed3SPierre Pronchery $ openssl ecparam -list_curves 650b077aed3SPierre Pronchery 651b077aed3SPierre Pronchery=item B<-cipher> I<val> 652b077aed3SPierre Pronchery 653b077aed3SPierre ProncheryThis allows the list of TLSv1.2 and below ciphersuites used by the server to be 654b077aed3SPierre Proncherymodified. This list is combined with any TLSv1.3 ciphersuites that have been 655b077aed3SPierre Proncheryconfigured. When the client sends a list of supported ciphers the first client 656b077aed3SPierre Proncherycipher also included in the server list is used. Because the client specifies 657b077aed3SPierre Proncherythe preference order, the order of the server cipherlist is irrelevant. See 658b077aed3SPierre ProncheryL<openssl-ciphers(1)> for more information. 659b077aed3SPierre Pronchery 660b077aed3SPierre Pronchery=item B<-ciphersuites> I<val> 661b077aed3SPierre Pronchery 662b077aed3SPierre ProncheryThis allows the list of TLSv1.3 ciphersuites used by the server to be modified. 663b077aed3SPierre ProncheryThis list is combined with any TLSv1.2 and below ciphersuites that have been 664b077aed3SPierre Proncheryconfigured. When the client sends a list of supported ciphers the first client 665b077aed3SPierre Proncherycipher also included in the server list is used. Because the client specifies 666b077aed3SPierre Proncherythe preference order, the order of the server cipherlist is irrelevant. See 667b077aed3SPierre ProncheryL<openssl-ciphers(1)> command for more information. The format for this list is 668b077aed3SPierre Proncherya simple colon (":") separated list of TLSv1.3 ciphersuite names. 669b077aed3SPierre Pronchery 670b077aed3SPierre Pronchery=item B<-dhparam> I<infile> 671b077aed3SPierre Pronchery 672b077aed3SPierre ProncheryThe DH parameter file to use. The ephemeral DH cipher suites generate keys 673b077aed3SPierre Proncheryusing a set of DH parameters. If not specified then an attempt is made to 674b077aed3SPierre Proncheryload the parameters from the server certificate file. 675b077aed3SPierre ProncheryIf this fails then a static set of parameters hard coded into this command 676b077aed3SPierre Proncherywill be used. 677b077aed3SPierre Pronchery 678b077aed3SPierre Pronchery=item B<-nbio> 679b077aed3SPierre Pronchery 680b077aed3SPierre ProncheryTurns on non blocking I/O. 681b077aed3SPierre Pronchery 682b077aed3SPierre Pronchery=item B<-timeout> 683b077aed3SPierre Pronchery 684b077aed3SPierre ProncheryEnable timeouts. 685b077aed3SPierre Pronchery 686b077aed3SPierre Pronchery=item B<-mtu> 687b077aed3SPierre Pronchery 688b077aed3SPierre ProncherySet link-layer MTU. 689b077aed3SPierre Pronchery 690b077aed3SPierre Pronchery=item B<-psk_identity> I<val> 691b077aed3SPierre Pronchery 692b077aed3SPierre ProncheryExpect the client to send PSK identity I<val> when using a PSK 693b077aed3SPierre Proncherycipher suite, and warn if they do not. By default, the expected PSK 694b077aed3SPierre Proncheryidentity is the string "Client_identity". 695b077aed3SPierre Pronchery 696b077aed3SPierre Pronchery=item B<-psk_hint> I<val> 697b077aed3SPierre Pronchery 698b077aed3SPierre ProncheryUse the PSK identity hint I<val> when using a PSK cipher suite. 699b077aed3SPierre Pronchery 700b077aed3SPierre Pronchery=item B<-psk> I<val> 701b077aed3SPierre Pronchery 702b077aed3SPierre ProncheryUse the PSK key I<val> when using a PSK cipher suite. The key is 703b077aed3SPierre Proncherygiven as a hexadecimal number without leading 0x, for example -psk 704b077aed3SPierre Pronchery1a2b3c4d. 705b077aed3SPierre ProncheryThis option must be provided in order to use a PSK cipher. 706b077aed3SPierre Pronchery 707b077aed3SPierre Pronchery=item B<-psk_session> I<file> 708b077aed3SPierre Pronchery 709b077aed3SPierre ProncheryUse the pem encoded SSL_SESSION data stored in I<file> as the basis of a PSK. 710b077aed3SPierre ProncheryNote that this will only work if TLSv1.3 is negotiated. 711b077aed3SPierre Pronchery 712b077aed3SPierre Pronchery=item B<-srpvfile> 713b077aed3SPierre Pronchery 714b077aed3SPierre ProncheryThe verifier file for SRP. 715b077aed3SPierre ProncheryThis option is deprecated. 716b077aed3SPierre Pronchery 717b077aed3SPierre Pronchery=item B<-srpuserseed> 718b077aed3SPierre Pronchery 719b077aed3SPierre ProncheryA seed string for a default user salt. 720b077aed3SPierre ProncheryThis option is deprecated. 721b077aed3SPierre Pronchery 722b077aed3SPierre Pronchery=item B<-listen> 723b077aed3SPierre Pronchery 724b077aed3SPierre ProncheryThis option can only be used in conjunction with one of the DTLS options above. 725b077aed3SPierre ProncheryWith this option, this command will listen on a UDP port for incoming 726b077aed3SPierre Proncheryconnections. 727b077aed3SPierre ProncheryAny ClientHellos that arrive will be checked to see if they have a cookie in 728b077aed3SPierre Proncherythem or not. 729b077aed3SPierre ProncheryAny without a cookie will be responded to with a HelloVerifyRequest. 730b077aed3SPierre ProncheryIf a ClientHello with a cookie is received then this command will 731b077aed3SPierre Proncheryconnect to that peer and complete the handshake. 732b077aed3SPierre Pronchery 733b077aed3SPierre Pronchery=item B<-sctp> 734b077aed3SPierre Pronchery 735b077aed3SPierre ProncheryUse SCTP for the transport protocol instead of UDP in DTLS. Must be used in 736b077aed3SPierre Proncheryconjunction with B<-dtls>, B<-dtls1> or B<-dtls1_2>. This option is only 737b077aed3SPierre Proncheryavailable where OpenSSL has support for SCTP enabled. 738b077aed3SPierre Pronchery 739b077aed3SPierre Pronchery=item B<-sctp_label_bug> 740b077aed3SPierre Pronchery 741b077aed3SPierre ProncheryUse the incorrect behaviour of older OpenSSL implementations when computing 742b077aed3SPierre Proncheryendpoint-pair shared secrets for DTLS/SCTP. This allows communication with 743b077aed3SPierre Proncheryolder broken implementations but breaks interoperability with correct 744b077aed3SPierre Proncheryimplementations. Must be used in conjunction with B<-sctp>. This option is only 745b077aed3SPierre Proncheryavailable where OpenSSL has support for SCTP enabled. 746b077aed3SPierre Pronchery 747b077aed3SPierre Pronchery=item B<-use_srtp> 748b077aed3SPierre Pronchery 749b077aed3SPierre ProncheryOffer SRTP key management with a colon-separated profile list. 750b077aed3SPierre Pronchery 751b077aed3SPierre Pronchery=item B<-no_dhe> 752b077aed3SPierre Pronchery 753b077aed3SPierre ProncheryIf this option is set then no DH parameters will be loaded effectively 754b077aed3SPierre Proncherydisabling the ephemeral DH cipher suites. 755b077aed3SPierre Pronchery 756b077aed3SPierre Pronchery=item B<-alpn> I<val>, B<-nextprotoneg> I<val> 757b077aed3SPierre Pronchery 758b077aed3SPierre ProncheryThese flags enable the Application-Layer Protocol Negotiation 759b077aed3SPierre Proncheryor Next Protocol Negotiation (NPN) extension, respectively. ALPN is the 760b077aed3SPierre ProncheryIETF standard and replaces NPN. 761b077aed3SPierre ProncheryThe I<val> list is a comma-separated list of supported protocol 762b077aed3SPierre Proncherynames. The list should contain the most desirable protocols first. 763b077aed3SPierre ProncheryProtocol names are printable ASCII strings, for example "http/1.1" or 764b077aed3SPierre Pronchery"spdy/3". 765b077aed3SPierre ProncheryThe flag B<-nextprotoneg> cannot be specified if B<-tls1_3> is used. 766b077aed3SPierre Pronchery 767b077aed3SPierre Pronchery=item B<-sendfile> 768b077aed3SPierre Pronchery 769b077aed3SPierre ProncheryIf this option is set and KTLS is enabled, SSL_sendfile() will be used 770b077aed3SPierre Proncheryinstead of BIO_write() to send the HTTP response requested by a client. 771b077aed3SPierre ProncheryThis option is only valid if B<-WWW> or B<-HTTP> is specified. 772b077aed3SPierre Pronchery 773b077aed3SPierre Pronchery=item B<-keylogfile> I<outfile> 774b077aed3SPierre Pronchery 775b077aed3SPierre ProncheryAppends TLS secrets to the specified keylog file such that external programs 776b077aed3SPierre Pronchery(like Wireshark) can decrypt TLS connections. 777b077aed3SPierre Pronchery 778b077aed3SPierre Pronchery=item B<-max_early_data> I<int> 779b077aed3SPierre Pronchery 780b077aed3SPierre ProncheryChange the default maximum early data bytes that are specified for new sessions 781b077aed3SPierre Proncheryand any incoming early data (when used in conjunction with the B<-early_data> 782b077aed3SPierre Proncheryflag). The default value is approximately 16k. The argument must be an integer 783b077aed3SPierre Proncherygreater than or equal to 0. 784b077aed3SPierre Pronchery 785b077aed3SPierre Pronchery=item B<-recv_max_early_data> I<int> 786b077aed3SPierre Pronchery 787b077aed3SPierre ProncherySpecify the hard limit on the maximum number of early data bytes that will 788b077aed3SPierre Proncherybe accepted. 789b077aed3SPierre Pronchery 790b077aed3SPierre Pronchery=item B<-early_data> 791b077aed3SPierre Pronchery 792b077aed3SPierre ProncheryAccept early data where possible. Cannot be used in conjunction with B<-www>, 793b077aed3SPierre ProncheryB<-WWW>, B<-HTTP> or B<-rev>. 794b077aed3SPierre Pronchery 795b077aed3SPierre Pronchery=item B<-stateless> 796b077aed3SPierre Pronchery 797b077aed3SPierre ProncheryRequire TLSv1.3 cookies. 798b077aed3SPierre Pronchery 799b077aed3SPierre Pronchery=item B<-anti_replay>, B<-no_anti_replay> 800b077aed3SPierre Pronchery 801b077aed3SPierre ProncherySwitches replay protection on or off, respectively. Replay protection is on by 802b077aed3SPierre Proncherydefault unless overridden by a configuration file. When it is on, OpenSSL will 803b077aed3SPierre Proncheryautomatically detect if a session ticket has been used more than once, TLSv1.3 804b077aed3SPierre Proncheryhas been negotiated, and early data is enabled on the server. A full handshake 805b077aed3SPierre Proncheryis forced if a session ticket is used a second or subsequent time. Any early 806b077aed3SPierre Proncherydata that was sent will be rejected. 807b077aed3SPierre Pronchery 808b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_name_item -} 809b077aed3SPierre Pronchery 810b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_version_item -} 811b077aed3SPierre Pronchery 812b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_s_item -} 813b077aed3SPierre Pronchery 814b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_x_item -} 815b077aed3SPierre Pronchery 816b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_trust_item -} 817b077aed3SPierre Pronchery 818b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_r_item -} 819b077aed3SPierre Pronchery 820b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_engine_item -} 821b077aed3SPierre Pronchery 822b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_provider_item -} 823b077aed3SPierre Pronchery 824b077aed3SPierre Pronchery{- $OpenSSL::safe::opt_v_item -} 825b077aed3SPierre Pronchery 826b077aed3SPierre ProncheryIf the server requests a client certificate, then 827b077aed3SPierre Proncheryverification errors are displayed, for debugging, but the command will 828b077aed3SPierre Proncheryproceed unless the B<-verify_return_error> option is used. 829b077aed3SPierre Pronchery 830b077aed3SPierre Pronchery=back 831b077aed3SPierre Pronchery 832b077aed3SPierre Pronchery=head1 CONNECTED COMMANDS 833b077aed3SPierre Pronchery 834b077aed3SPierre ProncheryIf a connection request is established with an SSL client and neither the 835b077aed3SPierre ProncheryB<-www> nor the B<-WWW> option has been used then normally any data received 836b077aed3SPierre Proncheryfrom the client is displayed and any key presses will be sent to the client. 837b077aed3SPierre Pronchery 838b077aed3SPierre ProncheryCertain commands are also recognized which perform special operations. These 839b077aed3SPierre Proncherycommands are a letter which must appear at the start of a line. They are listed 840b077aed3SPierre Proncherybelow. 841b077aed3SPierre Pronchery 842b077aed3SPierre Pronchery=over 4 843b077aed3SPierre Pronchery 844b077aed3SPierre Pronchery=item B<q> 845b077aed3SPierre Pronchery 846b077aed3SPierre ProncheryEnd the current SSL connection but still accept new connections. 847b077aed3SPierre Pronchery 848b077aed3SPierre Pronchery=item B<Q> 849b077aed3SPierre Pronchery 850b077aed3SPierre ProncheryEnd the current SSL connection and exit. 851b077aed3SPierre Pronchery 852b077aed3SPierre Pronchery=item B<r> 853b077aed3SPierre Pronchery 854b077aed3SPierre ProncheryRenegotiate the SSL session (TLSv1.2 and below only). 855b077aed3SPierre Pronchery 856b077aed3SPierre Pronchery=item B<R> 857b077aed3SPierre Pronchery 858b077aed3SPierre ProncheryRenegotiate the SSL session and request a client certificate (TLSv1.2 and below 859b077aed3SPierre Proncheryonly). 860b077aed3SPierre Pronchery 861b077aed3SPierre Pronchery=item B<P> 862b077aed3SPierre Pronchery 863b077aed3SPierre ProncherySend some plain text down the underlying TCP connection: this should 864b077aed3SPierre Proncherycause the client to disconnect due to a protocol violation. 865b077aed3SPierre Pronchery 866b077aed3SPierre Pronchery=item B<S> 867b077aed3SPierre Pronchery 868b077aed3SPierre ProncheryPrint out some session cache status information. 869b077aed3SPierre Pronchery 870b077aed3SPierre Pronchery=item B<k> 871b077aed3SPierre Pronchery 872b077aed3SPierre ProncherySend a key update message to the client (TLSv1.3 only) 873b077aed3SPierre Pronchery 874b077aed3SPierre Pronchery=item B<K> 875b077aed3SPierre Pronchery 876b077aed3SPierre ProncherySend a key update message to the client and request one back (TLSv1.3 only) 877b077aed3SPierre Pronchery 878b077aed3SPierre Pronchery=item B<c> 879b077aed3SPierre Pronchery 880b077aed3SPierre ProncherySend a certificate request to the client (TLSv1.3 only) 881b077aed3SPierre Pronchery 882b077aed3SPierre Pronchery=back 883b077aed3SPierre Pronchery 884b077aed3SPierre Pronchery=head1 NOTES 885b077aed3SPierre Pronchery 886b077aed3SPierre ProncheryThis command can be used to debug SSL clients. To accept connections 887b077aed3SPierre Proncheryfrom a web browser the command: 888b077aed3SPierre Pronchery 889b077aed3SPierre Pronchery openssl s_server -accept 443 -www 890b077aed3SPierre Pronchery 891b077aed3SPierre Proncherycan be used for example. 892b077aed3SPierre Pronchery 893b077aed3SPierre ProncheryAlthough specifying an empty list of CAs when requesting a client certificate 894b077aed3SPierre Proncheryis strictly speaking a protocol violation, some SSL clients interpret this to 895b077aed3SPierre Proncherymean any CA is acceptable. This is useful for debugging purposes. 896b077aed3SPierre Pronchery 897b077aed3SPierre ProncheryThe session parameters can printed out using the L<openssl-sess_id(1)> command. 898b077aed3SPierre Pronchery 899b077aed3SPierre Pronchery=head1 BUGS 900b077aed3SPierre Pronchery 901b077aed3SPierre ProncheryBecause this program has a lot of options and also because some of the 902b077aed3SPierre Proncherytechniques used are rather old, the C source for this command is rather 903b077aed3SPierre Proncheryhard to read and not a model of how things should be done. 904b077aed3SPierre ProncheryA typical SSL server program would be much simpler. 905b077aed3SPierre Pronchery 906b077aed3SPierre ProncheryThe output of common ciphers is wrong: it just gives the list of ciphers that 907b077aed3SPierre ProncheryOpenSSL recognizes and the client supports. 908b077aed3SPierre Pronchery 909b077aed3SPierre ProncheryThere should be a way for this command to print out details 910b077aed3SPierre Proncheryof any unknown cipher suites a client says it supports. 911b077aed3SPierre Pronchery 912b077aed3SPierre Pronchery=head1 SEE ALSO 913b077aed3SPierre Pronchery 914b077aed3SPierre ProncheryL<openssl(1)>, 915b077aed3SPierre ProncheryL<openssl-sess_id(1)>, 916b077aed3SPierre ProncheryL<openssl-s_client(1)>, 917b077aed3SPierre ProncheryL<openssl-ciphers(1)>, 918b077aed3SPierre ProncheryL<SSL_CONF_cmd(3)>, 919b077aed3SPierre ProncheryL<SSL_CTX_set_max_send_fragment(3)>, 920b077aed3SPierre ProncheryL<SSL_CTX_set_split_send_fragment(3)>, 921b077aed3SPierre ProncheryL<SSL_CTX_set_max_pipelines(3)>, 922b077aed3SPierre ProncheryL<ossl_store-file(7)> 923b077aed3SPierre Pronchery 924b077aed3SPierre Pronchery=head1 HISTORY 925b077aed3SPierre Pronchery 926b077aed3SPierre ProncheryThe -no_alt_chains option was added in OpenSSL 1.1.0. 927b077aed3SPierre Pronchery 928b077aed3SPierre ProncheryThe 929b077aed3SPierre Pronchery-allow-no-dhe-kex and -prioritize_chacha options were added in OpenSSL 1.1.1. 930b077aed3SPierre Pronchery 931b077aed3SPierre ProncheryThe B<-srpvfile>, B<-srpuserseed>, and B<-engine> 932b077aed3SPierre Proncheryoption were deprecated in OpenSSL 3.0. 933b077aed3SPierre Pronchery 934b077aed3SPierre Pronchery=head1 COPYRIGHT 935b077aed3SPierre Pronchery 936*a7148ab3SEnji CooperCopyright 2000-2024 The OpenSSL Project Authors. All Rights Reserved. 937b077aed3SPierre Pronchery 938b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 939b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 940b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 941b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 942b077aed3SPierre Pronchery 943b077aed3SPierre Pronchery=cut 944