2004-01-05 02:59:14 +08:00
|
|
|
=pod
|
2019-10-31 11:35:08 +08:00
|
|
|
{- OpenSSL::safe::output_do_not_edit_headers(); -}
|
2019-10-13 05:45:56 +08:00
|
|
|
|
2004-01-05 02:59:14 +08:00
|
|
|
=head1 NAME
|
|
|
|
|
2019-08-22 07:04:41 +08:00
|
|
|
openssl-s_time - SSL/TLS performance timing program
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
B<openssl> B<s_time>
|
2016-02-06 00:58:45 +08:00
|
|
|
[B<-help>]
|
2019-10-02 00:16:29 +08:00
|
|
|
[B<-connect> I<host>:I<port>]
|
2019-09-26 03:20:11 +08:00
|
|
|
[B<-www> I<page>]
|
|
|
|
[B<-cert> I<filename>]
|
|
|
|
[B<-key> I<filename>]
|
2004-01-05 02:59:14 +08:00
|
|
|
[B<-reuse>]
|
|
|
|
[B<-new>]
|
2019-09-26 03:20:11 +08:00
|
|
|
[B<-verify> I<depth>]
|
|
|
|
[B<-time> I<seconds>]
|
Document most missing options
Add cmd-nits make target.
Listing options should stop when it hits the "parameters" separator.
Add missing .pod.in files to doc/man1/build.info
Tweak find-doc-nits to try openssl-XXX before XXX for POD files and
change an error messavge to be more useful.
Fix the following pages: ca, cms, crl, dgst, enc,
engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand,
rehash, req, rsautil, s_server, speed, s_time,
sess_id, smime, srp, ts, x509.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/10873)
2020-01-17 02:40:52 +08:00
|
|
|
[B<-ssl3>]
|
|
|
|
[B<-tls1>]
|
|
|
|
[B<-tls1_1>]
|
|
|
|
[B<-tls1_2>]
|
|
|
|
[B<-tls1_3>]
|
2004-01-05 02:59:14 +08:00
|
|
|
[B<-bugs>]
|
2019-09-26 03:20:11 +08:00
|
|
|
[B<-cipher> I<cipherlist>]
|
|
|
|
[B<-ciphersuites> I<val>]
|
2019-10-25 11:02:09 +08:00
|
|
|
{- $OpenSSL::safe::opt_name_synopsis -}
|
Document most missing options
Add cmd-nits make target.
Listing options should stop when it hits the "parameters" separator.
Add missing .pod.in files to doc/man1/build.info
Tweak find-doc-nits to try openssl-XXX before XXX for POD files and
change an error messavge to be more useful.
Fix the following pages: ca, cms, crl, dgst, enc,
engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand,
rehash, req, rsautil, s_server, speed, s_time,
sess_id, smime, srp, ts, x509.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/10873)
2020-01-17 02:40:52 +08:00
|
|
|
[B<-cafile> I<file>]
|
2019-10-13 05:45:56 +08:00
|
|
|
{- $OpenSSL::safe::opt_trust_synopsis -}
|
2020-02-25 12:29:30 +08:00
|
|
|
{- $OpenSSL::safe::opt_provider_synopsis -}
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command". In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in. However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
2019-10-02 01:43:36 +08:00
|
|
|
This command implements a generic SSL/TLS client which
|
|
|
|
connects to a remote host using SSL/TLS. It can request a page from the server
|
|
|
|
and includes the time to transfer the payload data in its timing measurements.
|
|
|
|
It measures the number of connections within a given timeframe, the amount of
|
|
|
|
data transferred (if any), and calculates the average time spent for one
|
|
|
|
connection.
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
=head1 OPTIONS
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
2016-02-06 00:58:45 +08:00
|
|
|
=item B<-help>
|
|
|
|
|
|
|
|
Print out a usage message.
|
|
|
|
|
2019-10-02 00:16:29 +08:00
|
|
|
=item B<-connect> I<host>:I<port>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
This specifies the host and optional port to connect to.
|
2024-08-02 03:36:02 +08:00
|
|
|
If the host string is an IPv6 address, it must be enclosed in C<[> and C<]>.
|
2004-01-05 02:59:14 +08:00
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-www> I<page>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
This specifies the page to GET from the server. A value of '/' gets the
|
2019-10-02 02:19:45 +08:00
|
|
|
F<index.html> page. If this parameter is not specified, then this command
|
Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command". In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in. However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
2019-10-02 01:43:36 +08:00
|
|
|
will only perform the handshake to establish SSL connections but not transfer
|
|
|
|
any payload data.
|
2004-01-05 02:59:14 +08:00
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-cert> I<certname>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
The certificate to use, if one is requested by the server. The default is
|
|
|
|
not to use a certificate. The file is in PEM format.
|
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-key> I<keyfile>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
The private key to use. If not specified then the certificate file will
|
|
|
|
be used. The file is in PEM format.
|
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-verify> I<depth>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
The verify depth to use. This specifies the maximum length of the
|
|
|
|
server certificate chain and turns on server certificate verification.
|
|
|
|
Currently the verify operation continues after errors so all the problems
|
|
|
|
with a certificate chain can be seen. As a side effect the connection
|
|
|
|
will never fail due to a server certificate verify failure.
|
|
|
|
|
|
|
|
=item B<-new>
|
|
|
|
|
2017-03-30 05:38:30 +08:00
|
|
|
Performs the timing test using a new session ID for each connection.
|
2004-01-05 02:59:14 +08:00
|
|
|
If neither B<-new> nor B<-reuse> are specified, they are both on by default
|
|
|
|
and executed in sequence.
|
|
|
|
|
|
|
|
=item B<-reuse>
|
|
|
|
|
2017-03-30 05:38:30 +08:00
|
|
|
Performs the timing test using the same session ID; this can be used as a test
|
2004-01-05 02:59:14 +08:00
|
|
|
that session caching is working. If neither B<-new> nor B<-reuse> are
|
|
|
|
specified, they are both on by default and executed in sequence.
|
|
|
|
|
|
|
|
=item B<-bugs>
|
|
|
|
|
2019-03-27 07:55:55 +08:00
|
|
|
There are several known bugs in SSL and TLS implementations. Adding this
|
2004-01-05 02:59:14 +08:00
|
|
|
option enables various workarounds.
|
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-cipher> I<cipherlist>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
2018-02-22 01:23:11 +08:00
|
|
|
This allows the TLSv1.2 and below cipher list sent by the client to be modified.
|
|
|
|
This list will be combined with any TLSv1.3 ciphersuites that have been
|
|
|
|
configured. Although the server determines which cipher suite is used it should
|
2018-09-01 08:40:51 +08:00
|
|
|
take the first supported cipher in the list sent by the client. See
|
2019-10-02 03:57:00 +08:00
|
|
|
L<openssl-ciphers(1)> for more information.
|
2018-02-22 01:23:11 +08:00
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-ciphersuites> I<val>
|
2018-02-22 01:23:11 +08:00
|
|
|
|
|
|
|
This allows the TLSv1.3 ciphersuites sent by the client to be modified. This
|
|
|
|
list will be combined with any TLSv1.2 and below ciphersuites that have been
|
|
|
|
configured. Although the server determines which cipher suite is used it should
|
2018-09-01 08:40:51 +08:00
|
|
|
take the first supported cipher in the list sent by the client. See
|
2019-10-02 03:57:00 +08:00
|
|
|
L<openssl-ciphers(1)> for more information. The format for this list is a
|
|
|
|
simple colon (":") separated list of TLSv1.3 ciphersuite names.
|
2004-01-05 02:59:14 +08:00
|
|
|
|
2019-09-26 03:20:11 +08:00
|
|
|
=item B<-time> I<length>
|
2004-01-08 15:38:15 +08:00
|
|
|
|
Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command". In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in. However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
2019-10-02 01:43:36 +08:00
|
|
|
Specifies how long (in seconds) this command should establish connections
|
|
|
|
and optionally transfer payload data from a server. Server and client
|
|
|
|
performance and the link speed determine how many connections it
|
|
|
|
can establish.
|
2004-01-08 15:38:15 +08:00
|
|
|
|
2019-10-25 11:02:09 +08:00
|
|
|
{- $OpenSSL::safe::opt_name_item -}
|
|
|
|
|
2019-10-13 05:45:56 +08:00
|
|
|
{- $OpenSSL::safe::opt_trust_item -}
|
|
|
|
|
2020-02-25 12:29:30 +08:00
|
|
|
{- $OpenSSL::safe::opt_provider_item -}
|
|
|
|
|
Document most missing options
Add cmd-nits make target.
Listing options should stop when it hits the "parameters" separator.
Add missing .pod.in files to doc/man1/build.info
Tweak find-doc-nits to try openssl-XXX before XXX for POD files and
change an error messavge to be more useful.
Fix the following pages: ca, cms, crl, dgst, enc,
engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand,
rehash, req, rsautil, s_server, speed, s_time,
sess_id, smime, srp, ts, x509.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/10873)
2020-01-17 02:40:52 +08:00
|
|
|
=item B<-cafile> I<file>
|
|
|
|
|
|
|
|
This is an obsolete synonym for B<-CAfile>.
|
|
|
|
|
|
|
|
=item B<-ssl3>, B<-tls1>, B<-tls1_1>, B<-tls1_2>, B<-tls1_3>
|
|
|
|
|
|
|
|
See L<openssl(1)/TLS Version Options>.
|
2019-10-13 05:45:56 +08:00
|
|
|
|
2004-01-05 02:59:14 +08:00
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 NOTES
|
|
|
|
|
Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command". In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in. However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
2019-10-02 01:43:36 +08:00
|
|
|
This command can be used to measure the performance of an SSL connection.
|
2004-01-05 02:59:14 +08:00
|
|
|
To connect to an SSL HTTP server and get the default page the command
|
|
|
|
|
|
|
|
openssl s_time -connect servername:443 -www / -CApath yourdir -CAfile yourfile.pem -cipher commoncipher [-ssl3]
|
|
|
|
|
2019-10-02 00:16:29 +08:00
|
|
|
would typically be used (https uses port 443). I<commoncipher> is a cipher to
|
Command docs: fix up command references
Almost all OpenSSL commands are in reality 'openssl cmd', so make sure
they are refered to like that and not just as the sub-command.
Self-references are avoided as much as is possible, and replaced with
"this command". In some cases, we even avoid that with a slight
rewrite of the sentence or paragrah they were in. However, in the few
cases where a self-reference is still admissible, they are done in
bold, i.e. openssl-speed.pod references itself like this:
B<openssl speed>
References to other commands are done as manual links, i.e. CA.pl.pod
references 'openssl req' like this: L<openssl-req(1)>
Some commands are examples rather than references; we enclose those in
C<>.
While we are it, we abolish "utility", replacing it with "command", or
remove it entirely in some cases.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/10065)
2019-10-02 01:43:36 +08:00
|
|
|
which both client and server can agree, see the L<openssl-ciphers(1)> command
|
2004-01-05 02:59:14 +08:00
|
|
|
for details.
|
|
|
|
|
|
|
|
If the handshake fails then there are several possible causes, if it is
|
2014-11-30 22:35:22 +08:00
|
|
|
nothing obvious like no client certificate then the B<-bugs> and
|
2004-01-05 02:59:14 +08:00
|
|
|
B<-ssl3> options can be tried
|
|
|
|
in case it is a buggy server. In particular you should play with these
|
|
|
|
options B<before> submitting a bug report to an OpenSSL mailing list.
|
|
|
|
|
|
|
|
A frequent problem when attempting to get client certificates working
|
|
|
|
is that a web client complains it has no certificates or gives an empty
|
|
|
|
list to choose from. This is normally because the server is not sending
|
|
|
|
the clients certificate authority in its "acceptable CA list" when it
|
2019-10-02 03:57:00 +08:00
|
|
|
requests a certificate. By using L<openssl-s_client(1)> the CA list can be
|
2020-06-30 03:13:07 +08:00
|
|
|
viewed and checked. However, some servers only request client authentication
|
2004-01-05 02:59:14 +08:00
|
|
|
after a specific URL is requested. To obtain the list in this case it
|
2019-10-02 03:57:00 +08:00
|
|
|
is necessary to use the B<-prexit> option of L<openssl-s_client(1)> and
|
2004-01-05 02:59:14 +08:00
|
|
|
send an HTTP request for an appropriate page.
|
|
|
|
|
|
|
|
If a certificate is specified on the command line using the B<-cert>
|
|
|
|
option it will not be used unless the server specifically requests
|
2020-06-30 03:13:07 +08:00
|
|
|
a client certificate. Therefore, merely including a client certificate
|
2004-01-05 02:59:14 +08:00
|
|
|
on the command line is no guarantee that the certificate works.
|
|
|
|
|
|
|
|
=head1 BUGS
|
|
|
|
|
|
|
|
Because this program does not have all the options of the
|
2019-10-02 03:57:00 +08:00
|
|
|
L<openssl-s_client(1)> program to turn protocols on and off, you may not
|
|
|
|
be able to measure the performance of all protocols with all servers.
|
2004-01-05 02:59:14 +08:00
|
|
|
|
|
|
|
The B<-verify> option should really exit if the server verification
|
|
|
|
fails.
|
|
|
|
|
Document most missing options
Add cmd-nits make target.
Listing options should stop when it hits the "parameters" separator.
Add missing .pod.in files to doc/man1/build.info
Tweak find-doc-nits to try openssl-XXX before XXX for POD files and
change an error messavge to be more useful.
Fix the following pages: ca, cms, crl, dgst, enc,
engine, errstr, gendsa, genrsa, list, ocsp, passwd, pkcs7, pkcs12, rand,
rehash, req, rsautil, s_server, speed, s_time,
sess_id, smime, srp, ts, x509.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/10873)
2020-01-17 02:40:52 +08:00
|
|
|
=head1 HISTORY
|
|
|
|
|
|
|
|
The B<-cafile> option was deprecated in OpenSSL 3.0.
|
|
|
|
|
2004-01-05 02:59:14 +08:00
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2019-08-22 07:04:41 +08:00
|
|
|
L<openssl(1)>,
|
|
|
|
L<openssl-s_client(1)>,
|
|
|
|
L<openssl-s_server(1)>,
|
2019-03-07 22:26:34 +08:00
|
|
|
L<openssl-ciphers(1)>,
|
|
|
|
L<ossl_store-file(7)>
|
2004-01-05 02:59:14 +08:00
|
|
|
|
2016-05-18 23:44:05 +08:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
2021-05-20 21:22:33 +08:00
|
|
|
Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved.
|
2016-05-18 23:44:05 +08:00
|
|
|
|
2018-12-06 21:04:11 +08:00
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
2016-05-18 23:44:05 +08:00
|
|
|
this file except in compliance with the License. You can obtain a copy
|
|
|
|
in the file LICENSE in the source distribution or at
|
|
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
|
|
|
|
=cut
|