Android 7.0以上的系统如何抓取HTTPS包

Android 7.0 以上的操作系统,大部分机型,如红米note、华为荣耀等按照老的方法设置了代理之后,依然无法抓包,并且部分手机比如小米上安装Charles证书会报错,这是因为Android系统做了安全限制,那么需要怎么解决呢?

 

先解决Android系统的安全限制

不解决的话Charles会报错:Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)

解决的方法如下:

按照Charles官方文档的要求,https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/,在APP的代码中添加相应代码支持。

 

也就是说,要在APP代码里进行如下的操作:

1、创建network_security_config.xml

在res文件夹下创建一个“xml”文件夹,并且文件夹中创建network_security_config.xml

2、XML文件配置

 

<?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>

3、在Manifest文件中进行配置

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">
    ...
    </application>
</manifest>

 

 

解决部分Android 7.0以上手机下载证书后无法安装的问题

以红米note为例,通过浏览器访问chls.pro/ssl下载的crt文件,提示证书无效,安装失败。

解决方法如下:

1、不使用小米手机自带的浏览器下载证书,可以直接使用Chrome或者其他浏览器下载pcm格式的证书安装。

2、或者使用小米自带的浏览器下载安装证书,但不要直接点击crt文件进行安装,而是通过系统来安装,安装的方法如下:

设置——更多设置——系统安全——从存储设备安装证书——选择证书,安装即可

 

解决了上面两个问题后,手上的Android手机就可以直接连上代理上网啦~

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页