由于遇上了个迷之请求,接口调用正常,OkHttpClient调用正常,RestTemplate调用失败,所以想看看发送的报文是怎样的,所以就下了个Fiddler
问题
下载安装,以及如何安装证书,网上太多相同文章了,就不再赘叙(毕竟我也是看别人的教程来安装的)
- 安装
- 导出证书
- 证书导入浏览器
- 配置浏览器代理
然后启动服务就会发现,fiddler只能抓取浏览器的请求…
分析
由于我需要的是抓取调用IDEA启动的服务请求记录,所以可能是需要对IDEA进行配置
网上开始找资料,然后发现有些资料说到jdk是有独立的证书管理的,所以需要把刚才步骤2
导出的证书导入jdk的证书管理器中,既然导入了,那同样是需要配置代理了,部分说直接通过System.setProperty()
去配置代理,或者通过HttpProxy
配置代理,前者试了没生效(不懂),后者看着就麻烦,所以放弃了,最终选用通过虚拟机参数配置
-DproxySet=true
-DproxyHost=127.0.0.1
-DproxyPort=8888
解决
开始通过这种方式会报另一个错误提示找不到证书路径,然后各种重装一步步走都没能解决,然后现在回顾却没法复现报错了
大概是PKIX path…意思是找不到证书路径的
最终添加以下vm options解决
-DproxySet=true
-DproxyHost=127.0.0.1
-DproxyPort=8888
-Djavax.net.debug=ssl
启动的时候可以发现,它会去加载各个证书
adding as trusted cert:Subject: CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.comIssuer: CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.comAlgorithm: RSA; Serial number: 0x5efd8364a3650884492251d918d131b0Valid from Sat Nov 25 01:03:20 CST 2023 until Sun Feb 22 01:03:20 CST 2026