fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)

相信很多测试小伙伴们都遇到以下问题,fiddler在抓取手机端的接口时,会出现tunnel to,从而导致无法获取接口的详细内容。找了网上的各种方法(修改注册表、https配置或者修改FiddlerScript文件)等,都无法彻底解决这个问题。其实原因是安卓8.0以下的版本无法完全信任fiddler的根证书,所以导致无法通过fiddler代理获取接口。

    • 解决方法:
      • 1.将手机获取root权限(推荐使用模拟器);
      • 2.将Fiddler证书导出;
      • 3.安装Openssl;
      • 4.然后通过Openssl先将Fiddler证书格式(.cer)转换为.pem格式;
      • 5.再通过Openssl 计算出.pem文件的哈希值;
      • 6.将.pem文件重命名,名字为刚才计算的哈希值,格式为o文件(例:"{哈希值}.0");
      • 7.然后将重命名后的文件放到Android设备的“/system/etc/security/cacerts/”目录下;
      • 8.将文件权限修改为可读可写可执行命令为:chmod 777 {哈希值}.o ;
      • 9.重新安装Fiddler证书,然后就会发现证书安装在系统下了,这样我们就成功了。

解决方法:

1.将手机获取root权限(推荐使用模拟器);

获取root权限这里我们就不多说了,有很多种方法,推荐使用模拟器,省去了很多操作且不会对我们手机有影响(手机root有可能会变砖);此处我们使用的是雷电模拟器,自带adb和root权限。

2.将Fiddler证书导出;

打开fiddler-点击工具栏的TOOLS-选择options-选择HTTPS-actions-点击Export Root certificate to Desktop。 然后我们返回到桌面就会发现桌面有个FiddlerRoot.cer文件。
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第1张图片

3.安装Openssl;

此处我们需要先安装Openssl,官网下载地址:Oenssl官网
安装完成后需要把Openssl的bin目录添加到系统path的环境变量中;打开cmd窗口输入openssl,出现如下图代表安装成功啦。
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第2张图片

4.然后通过Openssl先将Fiddler证书格式(.cer)转换为.pem格式;

接着,我们在cmd窗口输入openssl x509 -inform der -in FiddlerRoot.cer -out fiddler.pem;(注意:需要在对应目录下,要不会报错找不到目录)。

fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第3张图片

成功后我们可以再桌面看到一个fiddler.pem文件。
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第4张图片

5.再通过Openssl 计算出.pem文件的哈希值;

继续在cmd窗口输入openssl x509 -inform PEM -subject_hash_old -in fiddler.pem | findstr /R /N "^" | findstr /R /B "1:" 然后回返回哈希值。
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第5张图片

6.将.pem文件重命名,名字为刚才计算的哈希值,格式为o文件(例:“{哈希值}.0”);

我们将刚才计算出来的哈希值(e5c3944b)复制一下,将.pem文件重命名为e5c3944b.o文件。
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第6张图片

7.然后将重命名后的文件放到Android设备的“/system/etc/security/cacerts/”目录下;

接下来,我们打开雷电模拟器,将文件复制到/system/etc/security/cacerts/目录下;
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第7张图片

(注意:有些小伙伴可能会报错,提示需要以读写的方式重新挂载系统,如果和我一样用的是雷电模拟器,那只需要在软件设置-性能设置中将磁盘共享改为System.vmdk可写入;也可以通过mount命令来改变挂载,这里就不过多叙述了,需要的可以自行搜索一下)
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第8张图片

8.将文件权限修改为可读可写可执行命令为:chmod 777 {哈希值}.o ;

复制完成后,我们要看下文件的权限是否为所有用户都为可读、可写、可执行的权限。
如果不是我们需要用adb命令来更改文件权限;(简略的说下,首先用adb shellj进入内部,然后用chmod 777 e5c3944b.o进行赋权。这里需要用root权限来执行命令)
如下图这样就代表拥有全部权限了。
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第9张图片

9.重新安装Fiddler证书,然后就会发现证书安装在系统下了,这样我们就成功了。

然后就是我们下载fiddler证书(如果手机已安装需要卸载重新进行安装)。安装完成后,来查看下证书安装的位置。如下图,证书已经成功安装在系统下。这是我们再去进行抓包,会发现tunnel to已经消失啦。微信的接口也可以看到!

fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第10张图片
fiddler安卓抓包显示tunnel to无法抓包的解决方法(解决后微信小程序接口也能抓取)_第11张图片

感谢大家的观看,如果对您有所帮助,点个赞和收藏再走吧!比心

你可能感兴趣的:(fiddler,android,前端)