【已解决】Android模拟器安装Charle / Fiddler证书

前言:

在使用模拟器抓包时,发现无法安装导入证书,无法正常抓包。

这是因Android7.0之后新版本系统的安全限制导致,遇到这类问题的可参考以下方法步骤操作。

一、用Charles或者fiddler导出证书

1.Charles:Help--SSL Proxying--Save Charles Root Certificate

2.Fiddler:Tools--Options--HTTPS--Actions--Export Root Certificate to Desktop

二、安装OpenSSL

1.安装地址

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

2.安装默认安装,最后的捐款取消勾选。之后配置环境变量,将openssl安装路径bin的路径

(例如 C:\OpenSSL-Win64\bin)加入到操作系统的系统环境变量Path里面。

三、使用OpenSSL签发证书
1. 在cmd中输入(点击键盘win+R,呼出运行窗口,输入cmd即可打开cmd操作界面)
openssl x509 -subject_hash_old -in <Certificate_File>

2.*  <Certificate_File>为此前导出的证书(charles.pem),这个路径为绝对路径

四、重命名已签发的证书

1.将 charles.pem 这个文件名改为 生成的数字加.0,例如4950d4d7.0

五、模拟器配置

1.设置中心勾选开启root权限,必须使用root,并到磁盘设置内将可写入功能开启。

2.下载MT管理器按照并赋予其root权限(安装的时候,会进行提示,允许就行)

六、使用MT管理器App移动证书文件

1.将已签发的证书xxxxx.0传入到模拟器内

2.打开MT管理器在左侧栏查找xxxxx.0的文件位置

3.在MT管理器的右侧栏进入 /system/etc/security/cacerts/目录

4.长按左侧的xxxxx.0文件,点击复制,会自动复制到 /system/etc/security/cacerts/里面

5.鼠标左键长按住“右侧(复制出的)xxxxx.0文件”,点击"属性"

6、点击权限,将所见的权限(读、写、执行)全部勾选上,最终为777

七、重启模拟器

最终可以正常抓包了

### Charles Proxy 根证书安装与配置 #### 1. 下载并安装 Charles 工具 为了开始使用 Charles 的功能,需先从其官方网站下载适合 Windows 平台的安装包[^1]。访问官方提供的链接 `https://www.charlesproxy.com/download` 或者直接获取指定版本文件如 `https://www.charlesproxy.com/assets/release/5.0/charles-proxy-5.0-win-x86_64.appx` 进行安装。 #### 2. 获取有效的 License Charles 是一款收费工具,但可以通过合法方式获得试用许可。可以利用在线生成工具来创建注册码,例如访问站点 `https://www.zzzmode.com/mytools/charles/` 输入自定义名称以生成对应的 license key。例如: ```plaintext Registered Name: 太空眼睛 License Key: b4fd4f27c9417824a3 ``` #### 3. SSL 抓包基础准备 —— 安装证书 对于 HTTPS 协议的数据抓取,需要额外配置 Charles 的 SSL 功能。这一步骤涉及安装 Charles 提供的根证书至操作系统信任库中: ##### (1) 导出 .pem 文件 运行 Charles 后,在菜单栏依次点击 **Help -> SSL Proxying -> Save Charles Root Certificate** 将 CA 根证书保存为 `.cer` 或其他兼容格式。 ##### (2) 手动导入证书到系统存储 进入 Windows 的“Internet Options”,切换到 “Content” 页面下的 Certificates 设置窗口;或者借助命令行工具 mmc 添加证书管理插件完成导入操作。具体步骤如下所示: 1. 双击导出好的 `.pem` 文件; 2. 按照向导提示选择目标位置(通常是 Trusted Root Certification Authorities); 3. 如果遇到任何权限不足的情况,则尝试管理员身份重新执行上述过程[^1]。 #### 4. 配置 SSL 代理规则 最后回到 Charles 主界面开启全局监听模式 (**Proxy -> Enable Transparent HTTP Proxying**) 和启用 SSL 解密选项 (**Proxy -> SSL Proxy Settings...**) 。在此对话框里添加需要拦截域名列表项[^2]。 --- ### 示例代码片段 以下是简单的 Python 脚本用于测试是否成功捕获 HTTPS 请求数据流: ```python import requests proxies = { 'http': 'http://localhost:8888', 'https': 'https://localhost:8888' } response = requests.get('https://example.com', proxies=proxies, verify='path/to/charles-ssl-cert.pem') print(response.text) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值