Https 流量在传输的过程中是经过加密的,如果直接使用 wireshark 查看 https 传输的内容,将看到加密后的数据,无法看到明文数据。之前也曾经使用 wireshark 查看过 https 的明文数据,不过时间太久,已经忘记了配置的方式。现在将配置的过程记录下来,以便后续的查看。
配置的过程主要分为两步:
- Chrome 导出 SSL/TLS 的 secret key
- Wireshark 配置导出的 secret key file
笔者测试的环境为 apple Mac Book Pro,chrome 版本 125.0.6422.76,wireshark 版本 4.2.2
配置 chrome 导出 secret key file
- 终端中设置 SSLKEYLOGFILE 环境变量
export SSLKEYLOGFILE=~/ssh_key.log
- 在同一个终端中打开Chrome应用
open /Applications/Google\ Chrome.app/
- 访问一个 https 网站,查看
~/ssh_key.log
文件中是否有内容
配置 wireshark
- 菜单: preferences -> Protocols -> TLS 选择上一步中生成的
ssh_key.log
文件
wireshark 观察 https 流量
筛选出 http 或者 http2 的流量,选中某条返回的数据后可以在右下角的窗口中看到 Decrpted TLS 选项,其中便是解密后的数据。现在窗口看到的仍然是乱码,是因为数据是压缩后的,点击 Uncompressed entity body 选项额可以查看到解压缩后的明文数据。