美文网首页
安卓7.0出现Charles无法抓包 - unknown和证书无

安卓7.0出现Charles无法抓包 - unknown和证书无

作者: hellokitty小丸子 | 来源:发表于2019-09-26 10:59 被阅读0次

Android使用Charles抓取Https请求的报文时,Android和Charles都正确安装了证书之后出现抓包失败,报错SSLHandshake: Received fatal alert: unknown_ca,如下图所示:


1抓包失败.jpg

原因:

安卓7之后调整了安全策略会导致部分手机抓包失败,请参考此链接:https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html
文中提到默认情况下,针对API Level 24及更高版本的应用程序不再信任用户或管理员添加的CA用于安全连接。意思就是就算你在手机上安装了受信任的证书也是没卵用的。

解决办法 :

前提你的手机上已经正确安装了Charles证书:

  1. 在想抓包的app项目,AndroidManifest.xml文件中添加如下配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                ... >
...
</application>
</manifest>
  • 在res目录下新建一个xml文件夹,之后在res/xml/路径下新建文件network_security_config.xml,即res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config>
        <domain includeSubdomains="true">你要抓取的域名</domain>
        <trust-anchors>
        <certificates src="user"/>//信任用户自己安装的证书
        </trust-anchors>
    </domain-config>
</network-security-config>

OK,亲测有效,快去试试吧!

相关文章

网友评论

      本文标题:安卓7.0出现Charles无法抓包 - unknown和证书无

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