Wireshark拦截并分析https协议数据包(浏览器和Java程序)

https数据包拦截解析这个事之前也做过,不过是借助一个叫 fiddler 的中间代理软件实现的,https协议包其实是在http包之上加了一层ssl加密,所以直接用Wireshark的话只能看到加密后的TCP包内容,没法拿来分析http请求响应的内容。最近发现其实对于浏览器(Chrome,Firefox,其它未测),可以在Windows系统的环境变量中加入:

SSLKEYLOGFILE 这个key,并指定一个log文件路径,如(我习惯用命令行set,然后在此命令行内启动浏览器,达到临时添加环境变量的目的,当然用常规方法直接加到系统常驻环境变量内也可以):

set SSLKEYLOGFILE=d:\temp\key.log

然后在Wireshark的设置中指定Master-Secret log filename( Edit- Prefences – Protocols – SSL )为环境变量中指定的log文件:

再看https的请求就可以正确解析出数据包内容了。这是针对浏览器,接下来还有个问题就是Java程序的https包呢?一番搜索之后发现了最后的参考文章中提到的方法,就是使用这个jSSLKeyLog( https://sourceforge.net/p/jsslkeylog/code/HEAD/tree/ ),把原来启动Java程序的java -jar xxx.jar或java classname的命令,修改为 java -javaagent:jSSLKeyLog.jar=d:\temp\key.log -jar xxx.jar的方式,这样就也可以导出Wireshark解析https需要的log数据了。

参考文章:https://msd.misuland.com/pd/300070010049531904

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。