使用 fiddler 会导致一些应用程序在我的 Windows 机器上停止正常工作。我想使用 wireshark 来解密我的 tomcat 和远程服务器之间的所有 ssl 流量。所有流量都是 https。
我能够设置环境变量 SSLKEYLOGFILE 并解密浏览器生成的所有 SSL 流量。但这不适用于服务到服务调用。由于所谓的前向保密(我对此不太了解),访问 tomcat 的私钥不再有帮助。据我所知,访问 session key 是在 wireshark 中解密的最简单方法。
所以如果有人能回答以下任何一个问题,我的问题就可以解决。
1>有没有办法让 tomcat 8 将 session key 吐出到文件中,以便 wireshark 可以使用它来解密 SSL 流量。我正在使用 Java 8。
2>是否有一种工具不会通过代理重定向流量,但能够从我的机器中解密 SSL 流量?
最佳答案
您可以使用 extract-ssl-secrets 从任何 Java 应用程序中提取 Wireshark 所需的 key 工具。
- 从https://repo1.maven.org/maven2/name/neykov/extract-ssl-secrets/1.0.0/extract-ssl-secrets-1.0.0.jar 本地下载jar .确保文件名保持不变 - extract-ssl-secrets-1.0.0.jar。
- 添加
CATALINA_OPTS="${CATALINA_OPTS} -javaagent:<absolute path to>/extract-ssl-secrets-1.0.0.jar=/tmp/secrets.log"
至CATALINA_BASE/bin/setenv.sh
(如果缺少则创建它) - 使用
wireshark -o ssl.keylog_file:/tmp/secrets.log
启动 Wireshark - 开始捕获流量 - 应该即时解密
参见 troubleshooting section如果开箱后无法正常工作。
关于java - 如何使用 wireshark 解密服务以服务 SSL 流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39378699/