Android中7.0及以上手机无法使用Charles抓取https数据的解决方法

本文详细介绍了如何解决Android 7.0及以上版本设备在使用Charles进行https抓包时遇到的证书验证问题。通过在项目中添加默认信任所有证书的配置,使测试人员能够成功抓取https接口数据。

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

 

最近,测试小哥哥提出公司的部分7.0以上的测试机无法进行Charles抓包查看https的接口数据。

通过一波的查阅资料过后发现:android7.0+的版本新增了证书验证,https的安全证书手机端和电脑端都必须安装,这个是前提;又由于android手机多厂商系统定制的问题,可能有部分手机确实无法抓包,这里,对于抓包的问题上,我们在给测试打包的时候要对我们的项目进行添加设置: 默认信任所有证书。

 

这个操作其实是比较敏感的,线上不能带上这个配置;下面来说一下相关配置项:

1.在res-xml目录中创建一个名为 “network_security_config.xml”的文件夹:并且附上如下内容:

 

<network-security-config>

<base-config cleartextTrafficPermitted="true">

<trust-anchors>

<certificates src="system" overridePins="true" />

<certificates src="user" overridePins="true" />

</trust-anchors>

</base-config>

</network-security-config>

2.在AndroidManifest里的<application>标签中,添加代码:

android:networkSecurityConfig="@xml/network_security_config"

3.在charles里Proxy->SSL Proxy Settings->host添加你要抓包的地址,prot 443

修改完毕后,重新运行项目,在抓包的手机上配置好代理,就可以进行https的抓包了。

特此记录一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值