Home | History | Annotate | Line # | Download | only in man1
      1  1.1  christos =pod
      2  1.1  christos 
      3  1.1  christos =head1 NAME
      4  1.1  christos 
      5  1.1  christos openssl-s_time,
      6  1.1  christos s_time - SSL/TLS performance timing program
      7  1.1  christos 
      8  1.1  christos =head1 SYNOPSIS
      9  1.1  christos 
     10  1.1  christos B<openssl> B<s_time>
     11  1.1  christos [B<-help>]
     12  1.1  christos [B<-connect host:port>]
     13  1.1  christos [B<-www page>]
     14  1.1  christos [B<-cert filename>]
     15  1.1  christos [B<-key filename>]
     16  1.1  christos [B<-CApath directory>]
     17  1.1  christos [B<-CAfile filename>]
     18  1.1  christos [B<-no-CAfile>]
     19  1.1  christos [B<-no-CApath>]
     20  1.1  christos [B<-reuse>]
     21  1.1  christos [B<-new>]
     22  1.1  christos [B<-verify depth>]
     23  1.1  christos [B<-nameopt option>]
     24  1.1  christos [B<-time seconds>]
     25  1.1  christos [B<-ssl3>]
     26  1.1  christos [B<-bugs>]
     27  1.1  christos [B<-cipher cipherlist>]
     28  1.1  christos [B<-ciphersuites val>]
     29  1.1  christos 
     30  1.1  christos =head1 DESCRIPTION
     31  1.1  christos 
     32  1.1  christos The B<s_time> command implements a generic SSL/TLS client which connects to a
     33  1.1  christos remote host using SSL/TLS. It can request a page from the server and includes
     34  1.1  christos the time to transfer the payload data in its timing measurements. It measures
     35  1.1  christos the number of connections within a given timeframe, the amount of data
     36  1.1  christos transferred (if any), and calculates the average time spent for one connection.
     37  1.1  christos 
     38  1.1  christos =head1 OPTIONS
     39  1.1  christos 
     40  1.1  christos =over 4
     41  1.1  christos 
     42  1.1  christos =item B<-help>
     43  1.1  christos 
     44  1.1  christos Print out a usage message.
     45  1.1  christos 
     46  1.1  christos =item B<-connect host:port>
     47  1.1  christos 
     48  1.1  christos This specifies the host and optional port to connect to.
     49  1.1  christos 
     50  1.1  christos =item B<-www page>
     51  1.1  christos 
     52  1.1  christos This specifies the page to GET from the server. A value of '/' gets the
     53  1.1  christos index.htm[l] page. If this parameter is not specified, then B<s_time> will only
     54  1.1  christos perform the handshake to establish SSL connections but not transfer any
     55  1.1  christos payload data.
     56  1.1  christos 
     57  1.1  christos =item B<-cert certname>
     58  1.1  christos 
     59  1.1  christos The certificate to use, if one is requested by the server. The default is
     60  1.1  christos not to use a certificate. The file is in PEM format.
     61  1.1  christos 
     62  1.1  christos =item B<-key keyfile>
     63  1.1  christos 
     64  1.1  christos The private key to use. If not specified then the certificate file will
     65  1.1  christos be used. The file is in PEM format.
     66  1.1  christos 
     67  1.1  christos =item B<-verify depth>
     68  1.1  christos 
     69  1.1  christos The verify depth to use. This specifies the maximum length of the
     70  1.1  christos server certificate chain and turns on server certificate verification.
     71  1.1  christos Currently the verify operation continues after errors so all the problems
     72  1.1  christos with a certificate chain can be seen. As a side effect the connection
     73  1.1  christos will never fail due to a server certificate verify failure.
     74  1.1  christos 
     75  1.1  christos =item B<-nameopt option>
     76  1.1  christos 
     77  1.1  christos Option which determines how the subject or issuer names are displayed. The
     78  1.1  christos B<option> argument can be a single option or multiple options separated by
     79  1.1  christos commas.  Alternatively the B<-nameopt> switch may be used more than once to
     80  1.1  christos set multiple options. See the L<x509(1)> manual page for details.
     81  1.1  christos 
     82  1.1  christos =item B<-CApath directory>
     83  1.1  christos 
     84  1.1  christos The directory to use for server certificate verification. This directory
     85  1.1  christos must be in "hash format", see B<verify> for more information. These are
     86  1.1  christos also used when building the client certificate chain.
     87  1.1  christos 
     88  1.1  christos =item B<-CAfile file>
     89  1.1  christos 
     90  1.1  christos A file containing trusted certificates to use during server authentication
     91  1.1  christos and to use when attempting to build the client certificate chain.
     92  1.1  christos 
     93  1.1  christos =item B<-no-CAfile>
     94  1.1  christos 
     95  1.1  christos Do not load the trusted CA certificates from the default file location
     96  1.1  christos 
     97  1.1  christos =item B<-no-CApath>
     98  1.1  christos 
     99  1.1  christos Do not load the trusted CA certificates from the default directory location
    100  1.1  christos 
    101  1.1  christos =item B<-new>
    102  1.1  christos 
    103  1.1  christos Performs the timing test using a new session ID for each connection.
    104  1.1  christos If neither B<-new> nor B<-reuse> are specified, they are both on by default
    105  1.1  christos and executed in sequence.
    106  1.1  christos 
    107  1.1  christos =item B<-reuse>
    108  1.1  christos 
    109  1.1  christos Performs the timing test using the same session ID; this can be used as a test
    110  1.1  christos that session caching is working. If neither B<-new> nor B<-reuse> are
    111  1.1  christos specified, they are both on by default and executed in sequence.
    112  1.1  christos 
    113  1.1  christos =item B<-ssl3>
    114  1.1  christos 
    115  1.1  christos This option disables the use of SSL version 3. By default
    116  1.1  christos the initial handshake uses a method which should be compatible with all
    117  1.1  christos servers and permit them to use SSL v3 or TLS as appropriate.
    118  1.1  christos 
    119  1.1  christos The timing program is not as rich in options to turn protocols on and off as
    120  1.1  christos the L<s_client(1)> program and may not connect to all servers.
    121  1.1  christos Unfortunately there are a lot of ancient and broken servers in use which
    122  1.1  christos cannot handle this technique and will fail to connect. Some servers only
    123  1.1  christos work if TLS is turned off with the B<-ssl3> option.
    124  1.1  christos 
    125  1.1  christos Note that this option may not be available, depending on how
    126  1.1  christos OpenSSL was built.
    127  1.1  christos 
    128  1.1  christos =item B<-bugs>
    129  1.1  christos 
    130  1.1  christos There are several known bugs in SSL and TLS implementations. Adding this
    131  1.1  christos option enables various workarounds.
    132  1.1  christos 
    133  1.1  christos =item B<-cipher cipherlist>
    134  1.1  christos 
    135  1.1  christos This allows the TLSv1.2 and below cipher list sent by the client to be modified.
    136  1.1  christos This list will be combined with any TLSv1.3 ciphersuites that have been
    137  1.1  christos configured. Although the server determines which cipher suite is used it should
    138  1.1  christos take the first supported cipher in the list sent by the client. See
    139  1.1  christos L<ciphers(1)> for more information.
    140  1.1  christos 
    141  1.1  christos =item B<-ciphersuites val>
    142  1.1  christos 
    143  1.1  christos This allows the TLSv1.3 ciphersuites sent by the client to be modified. This
    144  1.1  christos list will be combined with any TLSv1.2 and below ciphersuites that have been
    145  1.1  christos configured. Although the server determines which cipher suite is used it should
    146  1.1  christos take the first supported cipher in the list sent by the client. See
    147  1.1  christos L<ciphers(1)> for more information. The format for this list is a simple
    148  1.1  christos colon (":") separated list of TLSv1.3 ciphersuite names.
    149  1.1  christos 
    150  1.1  christos =item B<-time length>
    151  1.1  christos 
    152  1.1  christos Specifies how long (in seconds) B<s_time> should establish connections and
    153  1.1  christos optionally transfer payload data from a server. Server and client performance
    154  1.1  christos and the link speed determine how many connections B<s_time> can establish.
    155  1.1  christos 
    156  1.1  christos =back
    157  1.1  christos 
    158  1.1  christos =head1 NOTES
    159  1.1  christos 
    160  1.1  christos B<s_time> can be used to measure the performance of an SSL connection.
    161  1.1  christos To connect to an SSL HTTP server and get the default page the command
    162  1.1  christos 
    163  1.1  christos  openssl s_time -connect servername:443 -www / -CApath yourdir -CAfile yourfile.pem -cipher commoncipher [-ssl3]
    164  1.1  christos 
    165  1.1  christos would typically be used (https uses port 443). 'commoncipher' is a cipher to
    166  1.1  christos which both client and server can agree, see the L<ciphers(1)> command
    167  1.1  christos for details.
    168  1.1  christos 
    169  1.1  christos If the handshake fails then there are several possible causes, if it is
    170  1.1  christos nothing obvious like no client certificate then the B<-bugs> and
    171  1.1  christos B<-ssl3> options can be tried
    172  1.1  christos in case it is a buggy server. In particular you should play with these
    173  1.1  christos options B<before> submitting a bug report to an OpenSSL mailing list.
    174  1.1  christos 
    175  1.1  christos A frequent problem when attempting to get client certificates working
    176  1.1  christos is that a web client complains it has no certificates or gives an empty
    177  1.1  christos list to choose from. This is normally because the server is not sending
    178  1.1  christos the clients certificate authority in its "acceptable CA list" when it
    179  1.1  christos requests a certificate. By using L<s_client(1)> the CA list can be
    180  1.1  christos viewed and checked. However, some servers only request client authentication
    181  1.1  christos after a specific URL is requested. To obtain the list in this case it
    182  1.1  christos is necessary to use the B<-prexit> option of L<s_client(1)> and
    183  1.1  christos send an HTTP request for an appropriate page.
    184  1.1  christos 
    185  1.1  christos If a certificate is specified on the command line using the B<-cert>
    186  1.1  christos option it will not be used unless the server specifically requests
    187  1.1  christos a client certificate. Therefore, merely including a client certificate
    188  1.1  christos on the command line is no guarantee that the certificate works.
    189  1.1  christos 
    190  1.1  christos =head1 BUGS
    191  1.1  christos 
    192  1.1  christos Because this program does not have all the options of the
    193  1.1  christos L<s_client(1)> program to turn protocols on and off, you may not be
    194  1.1  christos able to measure the performance of all protocols with all servers.
    195  1.1  christos 
    196  1.1  christos The B<-verify> option should really exit if the server verification
    197  1.1  christos fails.
    198  1.1  christos 
    199  1.1  christos =head1 SEE ALSO
    200  1.1  christos 
    201  1.1  christos L<s_client(1)>, L<s_server(1)>, L<ciphers(1)>
    202  1.1  christos 
    203  1.1  christos =head1 COPYRIGHT
    204  1.1  christos 
    205  1.1  christos Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.
    206  1.1  christos 
    207  1.1  christos Licensed under the OpenSSL license (the "License").  You may not use
    208  1.1  christos this file except in compliance with the License.  You can obtain a copy
    209  1.1  christos in the file LICENSE in the source distribution or at
    210  1.1  christos L<https://www.openssl.org/source/license.html>.
    211  1.1  christos 
    212  1.1  christos =cut
    213