wireshark 导出 https 证书

一、找到证书所在的数据包

证书是从服务端返回的,从 https 握手的过程来看,当服务端返回了 server hello 之后,就会主动将自己的证书返回给客户端,因此只要从 server hello 往后面找 1-2 个包,就可以找到证书所在的数据包了。

wireshark 会自动将证书解析出来:

 

不过要注意的是:

  1. 证书所在的数据包,除了证书以外,可能还有其他 https 握手包。
  2. 证书是二进制编码的,也就是相当于是 der 格式的证书
  3. 服务端可能将中间 CA 和根 CA 的证书一起返回回来,因此证书可能有多个

二、导出证书

找到所在包之后,在 wireshark 自动解析出来的协议栏里就能看到所有的证书内容了。

例如我下面这个,就包含了两个证书,一个是终端证书,一个是根证书:

点击想要的证书,右键选择 Export Packet Bytes 导出证书:

保存文件的时候要注意,因为证书是二进制的,要将文件的后缀名命名为*.cert 而不能是 txt 等格式,文件导出后就可以直接使用了。

发表评论