【转】Android 7.0 https 抓包实现

7 篇文章 0 订阅
5 篇文章 0 订阅

说到抓包,这就是涉及到调试和安全问题,对于 Android 7.0 (API 24 )以下,你可以直接使用 Charles 安装相关证书配置好代理后直接实现。但是在 Android 7.0 之后,Google 推出更加严格的安全机制。

至于具体怎么配置,Google 官方给出超级全面解释,官方连接。

1. 在你自己的app下,xml目录下新建一个文件:res/xml/network_security_config_debug.xml ,配置在debug模式下信任用户证书,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates
                overridePins="true"
                src="system" />
            <certificates
                overridePins="true"
                src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>


2. 在AndroidManifest中使用它:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application  android:networkSecurityConfig="@xml/network_security_config_debug" ... >
        ...
    </application>
</manifest>
这样debug模式下就可以抓包了。release的话改为以下配置

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Trust user added CAs while debuggable only -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>


简单分析下,为什么在 7.0 之后,在手机内直接安装证书没效果呢?这是 6.0 默认配置:

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
    </trust-anchors>
</base-config>

然后这是 7.0 默认配置:

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>

区别显而易见,我们在手机里自己安装证书,就是对应在 user 域,对于 7.0 来说,默认是直接不信任。所以,你装代理证书失去意义。

那要解决 7.0 不能抓包调试这个问题,你可以直接配置出这文件,选择上面 6.0 默认配置方式,信任来自 user 域证书。这样,你就又可以抓包调试。

上面方式最为简单,但是也有一些安全问题。比如说,你这么一配置,其实相当于否定 Google 为 7.0 https 增强的安全策略。而且这么一来,你的 https 请求任何人都可以抓包,这有什么意义呢?

接着介绍 Google 针对这一问题,给出建议:

<debug-overrides>
    <trust-anchors>
        <certificates src="@raw/user"/>
    </trust-anchors>
</debug-overrides>


这个就是我们在调试时可以信任的证书。

 ———————————————— 
版权声明:本文为CSDN博主「思钱想厚_hy」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a646796992/article/details/82901104

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值