`
rsljdkt
  • 浏览: 451651 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Fiddler抓去HTTP/HTTPS数据包

    博客分类:
  • Java
阅读更多

默认情况下,Fiddler是抓不到Java程序的HTTP/HTTPS的通信的。

1. 配置抓取HTTP/HTTPS通信。

    只要为Java程序设置HTTP代理,指向localhost:8888即可。

        方法一,使用如下方式启动Java程序:

java -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 <path-to-your-app>

        方法二,在代码开始处,使用Java API配置Java属性:

System.setProperty("http.proxyHost", "localhost"); 
System.setProperty("http.proxyPort", "8888"); 
System.setProperty("https.proxyHost", "localhost");
System.setProperty("https.proxyPort", "8888");

 2. 若要抓取HTTPS,以上配置不够,还需配置Fiddler解密HTTPS流量并导入Fiddler的root证书:

    打开Fiddler程序,工具->Fiddler选项,点击HTTPS标签页,勾选'解密HTTPS流量'复选框,此时会弹出安装Fiddler根证书的确认框,安装即可,然后从当前页面的下拉框中选择'从所有进程'或'仅非浏览器'。

3. 对于抓取HTTPS,还需要将Fiddler的根证书导入Java的KeyStore中,不然Java程序会抛出没有证书的相关异常

    1)导出Fiddler的根证书。

        在步骤2所打开的页面,点击‘动作’按钮,选择‘导出根证书到桌面’菜单项

     2)导入Fiddler根证书到Java的KeyStore中

        执行如下命令

<JAVA_HOME>/bin/keytool.exe -import -file C:\Users\<Username>\Desktop\FiddlerRoot.cer -keystore FiddlerKeystore -alias Fiddler

     该命令会创建一个新的Keystore:FiddleKeystore。会提醒输入要设定的密码。

     注:也可将该证书导入到Java默认的Keystore中(请自行google/baidu)

      3)在Java代码中设置KeyStore的路径:

System.setProperty("javax.net.ssl.trustStore", "<path-to-keystore>");

 注意:当然,也可在启动java程序时通过-Djavax.net.ssl.trustStore=XXX的方式指定。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics