美文网首页
Android Charles抓包失败的问题

Android Charles抓包失败的问题

作者: 民谣里不是故事就是诗丶 | 来源:发表于2022-05-20 12:35 被阅读0次

    背景

    1. 新手机 旧电脑,使用Charles 4.6.3版本抓包时提醒Unknown;
    2. 首先排除了没有安装RootCer 和 开启SSL Proxying的问题;
    3. 确认iOS手机连接此IP:8888可以正常抓包;
    提示获取不到CA证书.png

    解决思路

    0. 配置PC/MacOS Root Cer

    和普通博文介绍,配置Charles无异,此处略过。

    1. 发现手机需要在本地安装CA证书后点击信任

    换句话说直接让手机浏览器通过访问chls.pro/ssl下载证书自动安装不太可行,需要pc或者换个浏览器下载下来之后通过微信或者蓝牙的方式传给手机端。


    远程调试证书.png

    然后在系统设置里(以三星为例,在“设置-生物识别和安全性-其他安全设置-从设备存储空间安装”)找到“从设备存储空间安装”,选择CA证书;然后找到上述文件安装之后才可以使证书生效。

    2.Android 7.0用户自己安装的证书是不被app应用信任的

    出于安全性考虑,防止charles这种做接口逆向,监听数据;所以我们只能通过修改android 项目中的 network-security-config来允许Charles抓取自家app的接口数据。
    具体来说,第一步先在res/xml下新建一个网络管理配置文件允许在debug环境下信任user目录下的证书;

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

    第二步,在清单文件AndroidManifest.xml中指定配置文件


    image.png
        <application
            android:name=".ui.VSApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:networkSecurityConfig="@xml/network_config"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.DEFAULT"
            tools:replace="android:theme">
    

    3. 得证,解决,舒服。

    image.png

    相关文章

      网友评论

          本文标题:Android Charles抓包失败的问题

          本文链接:https://www.haomeiwen.com/subject/gydfprtx.html