因项目要求,原HTTP链接换成了加密链接HTTPS;导致安卓手机的第三方浏览器/原生嵌套窗口Webveiw无法正常抓包HTTPS的内容;
(请教了大佬)
使用的环境:WINDOWS10、EMUI 11、Charles 4.5.6、APP
排查问题的思路是先从能读到证书的方法来验证;
1、在电脑浏览器请求对应的HTTPS链接,查看抓包工具能否正常抓到;如果不能,电脑端证书就有问题,重装下再试试;
2、电脑端正常的情况下,在手机上自带浏览器里请求对应的HTTPS链接;查看抓包工具能否正常抓到;如果不能,手机端证书就有问题,重装下再试试;
3、如果电脑与手机自带浏览器都能正常抓到,APP的还是抓不到。排查一下Webview窗口是否为同一个;
排查方法:把手机自带浏览器请求的信息与APP请求抓包不到的信息对比一下;
如果不是同一浏览器,那基本就是因为第三方浏览器Webview(部分)无法读取到用户证书导致的;
百度等找了下不能抓包的原因:
到这个时候,基本可以确定无法抓包是因为非本浏览器窗口无法读到用户证书导致的;
解决思路: 通过模拟器ROOT后安装证书到系统证书的方法来解决读不到的问题;
Windows10、安卓模拟器(打开root)、adb、保存的pem证书;
2、 *** 作步骤1、打开模拟器,确保已连接
2、打开CMD(接下来基本在CMD里 *** 作了)
3、查看连接状态:adb devices (使用夜神模拟器可参考下方夜神使用相关或官方内容)
4、判断是否有ROOT权限:adb root
5、重启:adb reboot (未重启的可手动重启模拟器)
6、将/system部分置于可写入的模式:adb remount
7、查看pem证书信息:openssl x509 -subject_hash_old -in 123.pem (123.pem指具体文件的路径和名称) 也可以使用:openssl x509 hash_old -in 123.pem
8、把结果里的名称复制出来,再复制一份pem文件;更名为:hash结果里的名称.0 (如:ab6544ad.0)
9、安装证书:adb push ab6544ad.0 /system/etc/security/cacerts/ (就是把文件复制到对应的证书目录下)
10、进入模拟器里查看系统证书
查看模拟器连接状态
查看root状态
将/system部分置于可写入的模式
查看pem证书信息
更改文件名称(例)
传入模拟器系统文件夹
查看模拟器系统证书结果
完成这些基本就可以看到之前APP请求不能看HTTPS传参的了;
【夜神模拟器官网】 | 【常见问题 - 夜神模拟器帮助中心】
注: 使用夜神模拟器需要打开调试模式先(安装好后记得不要轻意升级夜神版本,以防不能再正常使用)
1、首先打开夜神模拟器,然后在cmd窗口下输入nox_adb devices;(最好进到夜神根目录文件夹)
2、查看到端口号后,将 nox_adb.exe connect 127.0.0.1:62001 改为 nox_adb.exe connect 127.0.0.1:52001 (自己对应的端口号)
同文旧地址:
博客园:https://www.cnblogs.com/cqtky/p/15048715.html
知乎1:https://www.zhihu.com/zvideo/1332393386285187072
知乎2:https://zhuanlan.zhihu.com/p/343500611
版本 | 更新时间 | 变更内容 | 其他 | 备注 |
---|---|---|---|---|
V1.0 | 2021102110 | 新增文档 | - | - |
V1.1 | 2022011315 | 调整文档内容,增加夜神模拟器部分相关 *** 作 | - | - |
V1.2 | 2022011409 | 调整文档内容,增加目录 | - | - |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)