Java 如何生成 SSLKEYLOGFILE
SSLKEYLOGFILE,记录了 SSL 用于加密流量的密钥信息,以用于后期解密捕获到的流量信息。
Chrome 和 Firefox 支持通过设置 SSLKEYLOGFILE
环境变量输出 key log file。Linux 下的命令行工具 curl
也对此提供了支持。
但是 Java 缺没有内建对此流量的支持。
要解密 Java 程序的 SSL 流量(HTTPS、HTTP/2),需要借助 jSSLKeyLog 工具。
1. 下载 jSSLKeyLog
到 https://github.com/jsslkeylog/jsslkeylog/releases 下载最新的 jSSLKeyLog 压缩包。
2. 使用 jSSLKeyLog 启动应用程序
jSSLKeyLog 以 Java Agent 的形式使用,同时指定 SSLKEYLOGFILE 的输出路径。
java -javaagent:jSSLKeyLog.jar=/path/to/your_logfile.log ... -jar file.jar
使用 Wireshark 打开 tcpdump 文件,并指定 SSLKEYLOGFILE 的路径
通过 上方菜单栏 -> 编辑 -> 首选项 打开首选项对话框。
左侧展开 Protocols 列表,找到 TLS 协议(选中 Protocols 的情况下,键盘一次输入 T、L、S 能直接定位 TLS 协议)。
然后在 "(Pre)-Master-Secret log file" 中选择我们的 key log file。

Preview