问题原因?
目前安卓手机可以抓取的https接口都在安卓7.0版本以下,有时候抓取Android7.0版本或以上的接口抓取不到
因为Android7.0之后常规手段不能抓Https的包,应用会默认不信任用户安装的证书(手机里自己安装的证书),只信任系统内的证书
为了手机全考虑
解决办法:
1 手机root权限(了解)
2. 使用安卓7.0以下版本(推荐)
第一种方法
-
第一种方法比较难一些,以小米安卓14版本为例
- 先安装openssl,参考地址:https://slproweb.com/products/Win32OpenSSL.html
- 我电脑是64位,点击EXE进行安装,傻瓜式安装
- 最后一步,这里都不选
-
然后进行环境变量,把openssde bin目录放到path里面,如下
-
然后把fiddler证书导出到D盘下,在D盘目录下打开cmd后执行如下
openssl x509 -subject_hash_old -in .\FiddlerRoot.cer -inform der
-
然后将上图的数字改为之前生成的证书的名称,后缀改为.0,即 269953fb.0
-
在当前目录下把改过的证书名称push到系统目录,命令如下
adb push 269953fb.0 /sdcard/Download -
进入到 /sdcard/Download目录下执行如下
cp 269953fb.0 /system/etc/security/cacerts -
会提示没有读和写的权限(原因是手机没有进行root),如下
-
查看系统自带的证书如下
-
Tips:手机root步骤比较复杂,相关参考:
小米手机获取完整ROOT权限教程:https://blog.csdn.net/m0_37442062/article/details/102743693?
解锁参考:https://www.miui.com/unlock/download.html
第二种方法(推荐)
比较简单
- 直接准备一台安卓7.0版本以下版本的安卓手机,设置手机代理即可抓取HTTPS的包(便宜点的可以在咸鱼购买,价格在100以下)
- 目前所熟悉的安卓7.0版本有以下手机类型,可以在testin云测平台进行先筛选好:https://testin.cn/realmachine/index.htm