一、找到证书所在的数据包
证书是从服务端返回的,从 https 握手的过程来看,当服务端返回了 server hello 之后,就会主动将自己的证书返回给客户端,因此只要从 server hello 往后面找 1-2 个包,就可以找到证书所在的数据包了。
wireshark 会自动将证书解析出来:
不过要注意的是:
- 证书所在的数据包,除了证书以外,可能还有其他 https 握手包。
- 证书是二进制编码的,也就是相当于是 der 格式的证书
- 服务端可能将中间 CA 和根 CA 的证书一起返回回来,因此证书可能有多个
二、导出证书
找到所在包之后,在 wireshark 自动解析出来的协议栏里就能看到所有的证书内容了。
例如我下面这个,就包含了两个证书,一个是终端证书,一个是根证书:
点击想要的证书,右键选择 Export Packet Bytes
导出证书:
保存文件的时候要注意,因为证书是二进制的,要将文件的后缀名命名为*.cert
而不能是 txt 等格式,文件导出后就可以直接使用了。
评论