已解决android7.0以上使用charles抓HTTPS包报错certificate_unknown

Posted up up!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已解决android7.0以上使用charles抓HTTPS包报错certificate_unknown相关的知识,希望对你有一定的参考价值。

手机上是否有装证书都可以使用下面的方法:

  1. 在你的androidManifest.xml文件中添加如下配置:

    <?xml version="1.0" encoding="utf-8"?>

    <manifest … >
    <application android:networkSecurityConfig="@xml/network_security_config"
    … >


  2. 在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="@raw/证书文件名"/>
         </trust-anchors>
     </domain-config>
    
  3. 在res目录下新建一个raw文件夹,将手机上安装的证书文件放入res/raw/目录下,证书格式:pem,ca等(chales的话就是将你在手机浏览器打开http://charlesproxy.com/getssl下载的证书放入即可),步骤2中的证书文件名,就是你放入res/raw/目录下文件的名字

配置完重新运行项目,就可以看到报文了!

以上是关于已解决android7.0以上使用charles抓HTTPS包报错certificate_unknown的主要内容,如果未能解决你的问题,请参考以下文章

已解决android7.0以上使用charles抓HTTPS包报错certificate_unknown

把charles,Fiddler 证书安装到android根目录,解决android7.0以上抓包无网络问题

使用Charles对自己开发的 App在Android7.0以上的手机的https请求抓包——亲测有效

Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式

Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式

安卓7.0及以上版本抓包https失败解决方法