用途:
s_time是openss提供的SSL/TLS性能测试工具,用于测试SSL/TSL服务。
用法:
openssl s_time [-connect host:port] [-www page] [-cert filename] [-key filename] [-CApath directory] [-CAfile filename] [-reuse] [-new] [-verify depth] [-nbio] [-time seconds] [-ssl2] [-ssl3] [-bugs] [-cipher cipherlist]
选项说明:
-connect host:port:设置服务器地址和端口号。如果没有设置,则默认为本地主机以及端口号4433。
-www page:指定获取的web网页。
-cert filename:使用的证书文件。如果server不要求要证书,这个可以省略。默认为PEM格式。
-key filename:使用的证书私钥文件。如果server不要求要证书,这个可以省略。默认为PEM格式。
-CApath directory:设置信任CA文件所在路径,此路径中的ca文件名采用特殊的形式:xxx.0,其中xxx为CA证书持有者的哈希值,它通过x509 -hash命令获得。
-CAfile filename:某文件,里面是所有你信任的CA的证书的内容。当你要建立client的证书链的时候也需要用到这个文件。
-reuse:用同样地session ID多次请求,主要用于测试。
-new: 新建链接。
-verify depth:设置验证深度。
-nbio:设置非阻塞模式的I/O。
-time seconds:指定搜集数据的秒数,默认30秒。
-ssl2、-ssl3:采用的SSL协议版本。
-bugs:打印调试信息值。
-cipher cipherlist:算法套件。
注意:
s_time可以被用于测量SSL连接过程中的性能。为了连接一个SSL HTTP服务器并获取默认页的命令如下:
openssl s_time -connect servername:443 -www / -CApath yourdir -CAfile yourfile.pem
-cipher commoncipher [-ssl3]
使用的端口号是443。’ commoncipher’是一个被服务器和客户端所同意的算法组件。
如果握手失败,原因可能有以下几种:
1. server需要验证你的证书,但你没有证书。
2. 如果肯定不是原因1,那么就慢慢一个一个set以下几个选项:-bugs, -ssl2, -ssl3, -tls1,-no_ssl2,-no_ssl3, -no_dtls。
3. 这可能是因为对方的server处理SSL有bug。
如果在命令行用B<-cert>选项来指定一个证书,它将不会被使用,除非服务器明确的请求一个客户端的证书。因此仅仅在客户端包含一个客户端证书时不能保证证书在工作。
BUGs:
因为这个项目没有包含L<s_client(1)|s_client(1)>项目的所有选项来转换协议开和关,就不能够测量服务器端的所有协议的性能问题。
如果服务器验证失败,B<-verify>将会退出。