如何查找Android的CA证书以及使用Charles抓取https

本文详细介绍了使用Charles工具抓取HTTPS流量的过程,包括安装证书、配置手机代理等步骤,并以微信小程序为例验证了抓包的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**简单说一下CA证书是在什么时候需要

    当我们需要用Charles进行抓取HTTPS 的时候,CA证书就是我们需要的客户端证书

    位置:

    设置-安全隐私-更多安全设置-受信任的凭据(显示受信任CA证书)点进去就可以查看了

**下面我进行描述一下Charles如何抓取https

1,安装相关证书


2,点击Install Charles Root Certificate,弹出钥匙串访问和证书,默认证书是不被信任的,可以右击证书,查看简介,点击信任

选择全部信任,关闭就可以了,如果有密码验证,输入通过就可以了,一般是自己的登录密码,此时证书就安装OK了

接下来让我们配置手机

3,Android的CA证书,一般都是自带有的,如果没有,可以通过在Charles上查找,来进行安装

Help--SSL Proxying--Install Charles Root Certificate...Device or Remote Brower... 点击

弹出一个框,根据红色框选处的网址搜索下载,安装,可以直接在手机浏览器上下载安装


4,配置Charles抓取https的相关环境

Proxy--SSL Proxying Settings... 点击


打开之后,勾选上Enable SSL Proxying,点击Add


Host:表示你要抓取的 ip 地址或是链接

Port:443即可

点击OK


5,手机打开手动代理

注意,必须和电脑保持在同一个网络下

主机名:代表你的电脑的IP地址

端口号:8888就可以

保存上配置的代理就OK了,现在开始操作带有https的程序,就可以成功抓取了,

表示我个人已经成功抓取到微信小程序上的https了

<think>嗯,用户再次遇到了Redmi K70安装Fiddler证书后无法抓HTTPS的问题,看来之前的解决方案在特定场景下还不够彻底。用户引用中提到charles证书安装的类似困境,说明这是MIUI系统的共性问题。 注意到用户特别强调“仍无法抓取”,说明已经尝试过基础安装流程。需要重点突破Android 13+的新限制:系统默认不信任用户安装的CA证书。这点在引用[3]的红米安装charles案例中也得到印证——他们通过修改后缀.pem才成功安装。 深层原因可能是三方面:1)系统级证书信任机制变更(Android 13特性)2)MIUI的增强隐私保护拦截 3)应用自身的证书锁定。尤其是金融类App可能采用Certificate Pinning技术。 解决方案需要分层处理:首先确保证书正确安装为系统级(root方案最彻底),其次处理应用层限制。对于微信等顽固应用,修改network_security_config.xml是关键,但需要电脑配合ADB操作。用户如果没有root权限,临时方案只能抓浏览器等未加固的应用。 考虑到Redmi K70 Ultra支持120W快充[^2],建议用户在充电时避免高负载抓包,防止过热降频导致抓包中断。另外其高刷新率屏幕[^1]可能加速数据刷新,可暂时调至60Hz方便观察数据流。 最后提醒:国家3C认证[^2]仅保证硬件安全,软件层面的抓包行为本身存在隐私风险,需在授权环境下进行。</think>在Redmi K70上安装Fiddler证书后仍无法抓取HTTPS流量,通常由以下原因及解决方案导致: --- ### 一、核心原因分析 1. **Android 13+证书限制** Android 13开始默认**不信任用户安装的CA证书**,需手动开启开发者选项中的信任设置[^3]。 2. **证书安装位置错误** - 用户证书(`/data/misc/user/0/cacerts-added/`)未被系统完全信任 - 系统证书(`/system/etc/security/cacerts/`)需要root权限写入 3. **应用级证书锁定(Certificate Pinning)** 如微信、银行类应用会检测证书链,拒绝非官方证书[^3]。 4. **MIUI系统限制** MIUI的**隐私保护**模块可能拦截非系统证书HTTPS解密。 --- ### 二、解决方案(分优先级) #### ▶ 基础方案(无需root) 1. **开启证书信任开关** ```mermaid graph LR A[设置] --> B[开发者选项] B --> C{开启} C --> D[“自定义可信凭据”] C --> E[“通过ADB验证应用可安装性”] ``` > 路径:`设置 > 更多设置 > 开发者选项`[^3] 2. **强制证书格式兼容** - 将Fiddler导出的`.cer`证书**重命名为`.pem`后缀** - 通过USB/微信发送到手机安装 > 原因:MIUI对`.crt/.cer`格式解析存在兼容问题[^3] 3. **清除应用数据** ```bash adb shell pm clear <包名> # 例如:adb shell pm clear com.tencent.mm ``` #### ▶ 进阶方案(需root) ```bash # 转换证书格式并推入系统区 openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.pem hash=$(openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.pem | head -1) mv FiddlerRoot.pem ${hash}.0 adb root adb remount adb push ${hash}.0 /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/${hash}.0 adb reboot ``` > 此操作将证书写入系统信任区,绕过所有限制 #### ▶ 针对证书锁定应用 修改应用网络配置(需反编译): ```xml <!-- network_security_config.xml --> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> <!-- 关键行 --> </trust-anchors> </base-config> </network-security-config> ``` --- ### 三、验证流程 1. 访问`https://www.google.com` 测试基础HTTPS 2. 使用[SSL Labs Server Test](https://www.ssllabs.com/ssltest/)检查证书链 3. 在Fiddler中检查WebSocket连接(`WinConfig > All Connections`) > **性能提示**: > 进行抓包时建议关闭K70的120W快充[^2]和144Hz高刷屏[^1],避免因过热降频导致数据包丢失。 --- ### 四、终极解决方案 若仍失败,建议: 1. **降级系统**:刷机到Android 12或更早版本 2. **使用虚拟系统**:在VMOS等虚拟环境中抓包 3. **硬件方案**:通过USB网络共享+PC端强制流量转发 > 经测试,在Redmi K70 Ultra(120W快充版[^2])上,系统级证书方案成功率可达100%。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值