fiddler/charles https配置完毕依然无法抓取APP https请求的解决办法

一、问题背景

APP测试的时候,通常都需要通过抓包工具抓取各类请求,查看接口的入参、返回值等,用于分析定位问题。

常用的抓包工具有fiddler、charles等,抓取http的请求比较简单,https的请求稍显复杂。如果还不知道如何配置的同学,可以参看杨叔之前写的文章:Charles抓取https请求及常见问题解决

实际项目测试过程中,碰到了另外一个问题:即使各项配置、证书都完全安装配置好之后,很多同学去打开一个APP测试效果,发现依然只能抓取http请求,https的请求依然抓取失败。 如下图所示,https请求:

然后很多时候第一想法就是花很多的时间去排查抓包工具配置的问题,浪费了很多时间,结果确依然没有解决问题。

二、根本原因

安卓7.0版本及以上系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而APP应用是不会信任这些证书。

证书没有被信任,就导致只能抓取http请求,而https这一类的请求则无法抓取。而目前市面上的很多手机的安卓版本已经远远大于7.0了:

所以无论你如何配置抓包工具,由于安卓高版本系统对证书的安全策略的设定,都无法抓取到APP的https请求。

三、解决方案

要解决这个问题,有以下两个方案:

  • 方案一:IOS和安卓<7.0的版本没有此问题,因此如果条件允许,可以换为苹果手机或安卓版本低于7.0版本的老手机去抓取。但是说实话,现在要找一个安卓版本低于7.0版本的手机,还是挺难的,所以这个方法理论上可用,但实际上并不算是一个很好的解决方案。
  • 方案二:让研发人员在代码中设置不启用该安全策略,生成一个测试的APP包,测试人员使用这个测试的APP包去抓取https请求。而正式发布对外的APP,肯定是要启用安全策略的,因此无法直接用正式发布的APP来直接抓取https请求。

总结:如果你也碰到同样的问题,恰好你的手机也是安卓手机,那么先看看自己是不是抓的是正式发布的APP的请求。如果是,让研发人员打一个测试的APP包,看看是否能正常抓包,而不是花很多的时间去排查配置、证书的问题哦~

希望以上的内容,对你有帮助,麻烦点个赞+收藏+分享,一键三连啦~

相关推荐
程序员杰哥8 小时前
UI自动化测试实战:从入门到精通
自动化测试·软件测试·python·selenium·测试工具·ui·职场和发展
00后程序员张9 小时前
HTTPS 包 抓取与分析实战,从抓包到解密、故障定位与真机取证
网络协议·http·ios·小程序·https·uni-app·iphone
局i10 小时前
HTTP与HTTPS的区别
网络协议·http·https
测试199810 小时前
Jmeter是如何实现接口关联的?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·接口测试
00后程序员张1 天前
iOS混淆与IPA文件加固全流程实战 防止苹果应用被反编译的工程级方案
android·ios·小程序·https·uni-app·iphone·webview
2501_915106321 天前
iOS 应用加固与苹果软件混淆指南,如何防止 IPA 被反编译与二次打包?
android·ios·小程序·https·uni-app·iphone·webview
测试老哥1 天前
测试用例之正交试验法、功能图法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
d3126975102 天前
Fiddler抓包android app设置
fiddler
卓码软件测评2 天前
第三方媒体流压力测试:k6插件xk6-webrtc的使用来测试媒体流的性能
网络协议·测试工具·http·https·webrtc·ssl·媒体
00后程序员张2 天前
Swoole HTTPS 实战,在生产环境部署、性能权衡与排查流程
后端·ios·小程序·https·uni-app·iphone·swoole