s_client为一个SSL/TLS客户端程序,与s_server对应,它不仅能与s_server进行通信,也能与任何使用ssl协议的其他服务程序进行通信。
用法:
openssl s_client [-connect host:port>] [-verify depth] [-cert filename]
[-key filename] [-CApath directory] [-CAfile filename] [-reconnect]
[-pause] [-showcerts] [-debug] [-msg] [-nbio_test] [-state] [-nbio]
[-crlf] [-ign_eof] [-quiet] [-ssl2] [-ssl3] [-tls1] [-no_ssl2]
[-no_ssl3] [-no_tls1] [-bugs] [-cipher cipherlist] [-engine id] [-rand file(s)]
选项:
-host host
设置服务地址.
-port port
设置服务端口,默认为4433。
-connect host:port
设置服务地址和端口。
-verify depth
设置证书验证深度。
-cert arg
设置握手采用的证书。
-certform arg
设置证书格式,默认为PEM。
-key arg
指定客户端私钥文件名,私钥可以与证书存放同一个文件中,这样,只需要-cert选项就可以了,不需要本选项。
-keyform arg
私钥格式,默认为PEM。
-pass arg
私钥保护口令来源,比如:-pass file:pwd.txt,将私钥保护口令存放在一个文件中,通过此选项来指定,不需要用户来输入口令。
-CApath arg
设置信任CA文件所在路径,此路径中的ca文件名采用特殊的形式:xxx.0,其中xxx为CA证书持有者的哈希值,它通过x509 -hash命令获得。
-CAfile arg
指定CA文件名。
-reconnect
重新连接,进行session重用。
-pause
每当读写数据时,sleep 1秒。
-showcerts
显示证书链。
-debug
额外输出信息。
-msg
打印协议消息。
-nbio_test
更多协议测试。
-state
打印SSL状态。
-nbio
不采用BIO。
-quiet
不显示客户端数据。
-ssl2、-ssl3、-tls1、-dtls1
指定客户端协议。
-no_tls1/-no_ssl3/-no_ssl2
不采用某协议。
-bugs
兼容老版本服务端的中的bug。
-cipher
指定加密套件。
-starttls protocol
protocol可以为smtp或pop3,用于邮件安全传输。
-rand file:file:...
设置随机数种子文件,SSL协议握手中会生成随机数,比如clienthello和serverhello消息中的随机数。
-crlf
将用户在终端输入的换行回车转化成/r/n。