安卓证书安装为系统证书(模拟器版)

一、背景/遇到的问题(HTTPS第三方窗口无法抓包)

因项目要求,原HTTP链接换成了加密链接HTTPS;导致安卓手机的第三方浏览器/原生嵌套窗口Webveiw无法正常抓包HTTPS的内容;
在这里插入图片描述

二、问题分析

(请教了大佬)
使用的环境:WINDOWS10、EMUI 11、Charles 4.5.6、APP
排查问题的思路是先从能读到证书的方法来验证;
1、在电脑浏览器请求对应的HTTPS链接,查看抓包工具能否正常抓到;如果不能,电脑端证书就有问题,重装下再试试;
2、电脑端正常的情况下,在手机上自带浏览器里请求对应的HTTPS链接;查看抓包工具能否正常抓到;如果不能,手机端证书就有问题,重装下再试试;
3、如果电脑与手机自带浏览器都能正常抓到,APP的还是抓不到。排查一下Webview窗口是否为同一个;
排查方法:把手机自带浏览器请求的信息与APP请求抓包不到的信息对比一下;
在这里插入图片描述
如果不是同一浏览器,那基本就是因为第三方浏览器Webview(部分)无法读取到用户证书导致的;
百度等找了下不能抓包的原因:
在这里插入图片描述
到这个时候,基本可以确定无法抓包是因为非本浏览器窗口无法读到用户证书导致的;

1、网上找到的解决办法

在这里插入图片描述
解决思路: 通过模拟器ROOT后安装证书到系统证书的方法来解决读不到的问题;

三、解决方法

1、本地环境

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

补充一下:(引用评论里大佬的补充方法)

weixin_45813782 2022.10.28
解决:‘openssl’ 不是内部或外部命令 https://www.cnblogs.com/tszr/p/16066749.html

8、把结果里的名称复制出来,再复制一份pem文件;更名为:hash结果里的名称.0 (如:ab6544ad.0)
9、安装证书:adb push ab6544ad.0 /system/etc/security/cacerts/ (就是把文件复制到对应的证书目录下)
10、进入模拟器里查看系统证书

3、部分操作截图

查看模拟器连接状态
在这里插入图片描述
查看root状态
在这里插入图片描述
将/system部分置于可写入的模式
在这里插入图片描述
查看pem证书信息
在这里插入图片描述
更改文件名称(例)
在这里插入图片描述
传入模拟器系统文件夹
在这里插入图片描述
查看模拟器系统证书结果
在这里插入图片描述
完成这些基本就可以看到之前APP请求不能看HTTPS传参的了;

4、夜神模拟器部分相关操作

【夜神模拟器官网】 | 【常见问题 - 夜神模拟器帮助中心】
注: 使用夜神模拟器需要打开调试模式先(安装好后记得不要轻意升级夜神版本,以防不能再正常使用
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.02021102110新增文档--
V1.12022011315调整文档内容,增加夜神模拟器部分相关操作--
V1.22022011409调整文档内容,增加目录--
V1.32023011311增加openssl相关的补充内容--
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在 Fiddler 模拟器安装 CA 证书,您可以按照以下步骤操作: 1. 首先,确保您已经安装了 Fiddler。您可以从 Fiddler 官方网站(https://www.telerik.com/fiddler)下载并安装最新本的 Fiddler。 2. 打开 Fiddler,并导航到 "Tools"(工具)菜单,选择 "Options"(选项)。 3. 在 "Options"(选项)对话框中,选择 "HTTPS" 选项卡。 4. 在 "HTTPS" 选项卡下,启用 "Decrypt HTTPS traffic"(解密 HTTPS 流量)复选框。这将生成一个根证书。 5. 单击 "Actions"(操作)下方的 "Export root certificate to desktop"(将根证书导出到桌面)链接。这将在桌面上生成一个名为 "FiddlerRoot.cer" 的证书文件。 6. 将生成的 "FiddlerRoot.cer" 证书文件移动到您希望存储的位置,例如您的项目文件夹或其他位置。 7. 然后,您需要在模拟器安装证书。具体步骤会因模拟器而异,以下是一些常见模拟器的操作方法: - 对于 Android 模拟器:在模拟器中导入证书时,您可以访问模拟器的设置,然后导航到 "Security"(安全)或 "Certificates"(证书)选项。选择导入证书,并选择您之前导出的 "FiddlerRoot.cer" 文件。 - 对于 iOS 模拟器:将 "FiddlerRoot.cer" 文件拖放到模拟器窗口中,然后在模拟器中的 "Settings"(设置)应用程序中安装证书。 - 对于其他模拟器:请参考模拟器的文档或支持页面,以了解如何安装证书。 请注意,具体的安装步骤可能因模拟器和操作系统本而异。如果您遇到任何问题,建议您查看相关模拟器的文档或寻求相关支持。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值