使用 Wireshark 解密 SSL 流量,支持两种方式:
- 使用证书解密,需要配置对端服务器私钥
- 不使用证书解密,需要设置 WSSLKEYLOGFILE
私钥
如何利用 Wireshark 解密 SSL 和 TLS 流量
edit -> preferences -> protocols -> ssl: rsa keys list
WSSLKEYLOGFILE
WSSLKEYLOGFILE 是 NSS 底层密码库提出的一种技术,所有基于 NSS 的应用程序在运行期间可以将通信过程中的会话密钥导出到一个文件中,一旦有了这个密码文件,Wireshark 就能够解密所有的 TLS 流量了。
现在 OpenSSL 等其他的 TLS 实现也能支持这种方式,通过 Chrome 和 Firefox 浏览器捕获 TLS 流量,Wireshark 就能够解密
配置
ubuntu 下使用命令行启动浏览器为了保证能读到环境变量
$ export SSLKEYLOGFILE=/tmp/keylog.txt
$ /opt/google/chrome/chrome
$ /usr/bin/firefox
使用
在wireshark中设置key log路径
edit -> preferences -> protocols -> ssl: (Pre)-Master-Secret log filename: /tmp/keylog.txt
设置之后可以解密 SSL 流量,可以看到 SSL 交互过程,可以 Follow SSL Stream
查看完整 HTTPS 数据