如果是chrome浏览器的数据流 直接配置”SSLKEYLOGFILE“就可以解密了。
实现过程:
1.配置系统环境变量
变量名:SSLKEYLOGFILE
变量值:随意指定一个存储路径,以便chrome输出keylog
2.配置Wireshark
填入你在系统变量中指定的keylog存储路径,以便wireshark访问keylog中的key 从而解密https(ssl)
原理解析:
当你配置了”SSLKEYLOGFILE“这个环境变量,这意味着你告诉chrome 你想知道chrome每次https会话的key记录,chrome将会在每次https会话结束后 将会话数据解密的key记录到keylog文件中,Wireshark通过访问keylog文件使用里面的key就可以解密自己捕获到的chrome产生的https会话数据流。
非chrome的https数据流怎么解密呢?
可以通过服务器证书的RSA私钥。
列程,我想要解密百度的https数据流
实现过程:
1.拿到百度的服务器证书
使用fiddler的中间人代理技术拿到含有私钥的服务器证书。
1).打开fiddler并启用https代理服务
2).用配置了fiddler代理的浏览器访问百度
3).运行”certmgr.msc“打开证书管理器
4)从Personal/Certificates目录下找到*.baidu.com的证书,右键所有任务-导出
2.取出证书中的私钥
使用openssl取出私钥。
1).将pfx证书转为pem证书
命令行:openssl pkcs12 -in <pfx证书路径> -nodes -out <输出的pem证书路径(.pem)>
2).从pem证书中取出私钥
命令行:openssl rsa -in <pem证书路径> -out <输出的私钥文件路径(.key)>
3.将私钥配置到wireshark
现在就可以解密与*.baidu.com相关的https数据流了!