openssl 是目前使用最广泛的 ssl 库之一,除了提供全面的 ssl 加密库以外,还提供了一些基础的命令行工具用于测试,目前绝大多数的软件都是使用 openssl 库来进行 ssl 交互,很多系统默认都自带了 openssl 相关的库和工具。
在我的工作中,最常用到的就是利用它来进行漏洞检测 (如 SSL 重协商漏洞) 以及连接测试等,使用普通的浏览器构造出特定的数据包实际上是很难的,但是通过 openssl 命令却相当简单。
一、查看证书相关信息的命令
打印证书的完整内容:
1 |
openssl x509 -in cert.pem -noout -text |
打印出证书的序列号:
1 |
openssl x509 -in cert.pem -noout -serial |
查看 der 格式的证书内容:
1 |
openssl x509 -in cert.pem -inform der -noout -text |
把 PEM 格式的证书转化成 DER 格式
1 |
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER |
二、 s_clinet 用法
s_clinet 是 openssl 命令中的一个客户端,可以用来进行 openssl 相关的连接测试,漏洞检测的时候经常会用到。
本周使用 s_client 做了两件事,一个是完成了 ssl 重协商漏洞的测试,另外一个是通过它重现了一个代码 BUG 。
发起一个连接请求:
1 |
openssl s_clinet -connect www.baidu.com:443 -ssl3 |
-ssl3
表示使用 SSLv3 版本的协议去连接服务端,也可以换成tls1_3/tls1_2/tls1_1
等。
指定发送的 srever_name 扩展字段:
1 |
openssl s_client -connect www.baidu.com:443 -server_name WWW.BAIDU.COM |
评论