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包,看看是否能正常抓包,而不是花很多的时间去排查配置、证书的问题哦~

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

相关推荐
结城29 分钟前
HTTP 与 HTTPS 的区别深度解析:从原理到实践
网络协议·http·https
No Silver Bullet7 小时前
CA证书、SSL加速器、HTTPS、HTTP和域名之间的关系
https
2501_9160088919 小时前
iOS混淆工具有哪些?在集成第三方 SDK 时的混淆策略与工具建议
android·ios·小程序·https·uni-app·iphone·webview
2501_9159214319 小时前
Windows 如何上架 iOS 应用?签名上传全流程 + 工具推荐
android·ios·小程序·https·uni-app·iphone·webview
网安墨雨1 天前
2025金九银十软件测试面试题(800道)
软件测试·职场和发展
2501_916007471 天前
iOS 文件管理实战指南 查看 App 数据与系统日志的完整方法
android·ios·小程序·https·uni-app·iphone·webview
天才测试猿1 天前
什么是单元测试?
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
2501_915106321 天前
iOS 内测上架流程详解:跨平台团队如何快速部署 TestFlight
android·ios·小程序·https·uni-app·iphone·webview
only_Klein1 天前
harbor仓库搭建(配置https)
网络协议·http·docker·https·harbor
程序员三藏2 天前
软件测试之单元测试
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例