美文网首页抓包fidder
android 使用 charles 抓取 https 接口,小

android 使用 charles 抓取 https 接口,小

作者: 黑键手记 | 来源:发表于2019-08-13 17:17 被阅读11次

抓取 https 的数据

如果使用的是其他手机,那么按照常用方法抓就行了

1、电脑 charles 安装证书,设置证书「信任」为 始终信任,启用 SSL 代理,并配置代理的网段~

2、手机配置好跟电脑一样的网段,然后 端口配置成8888,然后访问 charles 提供的网址,下载证书。

网址大致是chls.pro/ssl,不过还是要以自己看到 charles 的提示为准

这里特别要注意,千万不要使用小米自己的浏览器下载这个证书,而是要使用其他浏览器,这样下载下来的证书才是 .pem后缀的,这里要特别注意

而且也不要在电脑端去下载手机端的这个证书,否则也会影响效果(只能使用指定证书的方法抓取数据)

3、手机、电脑都安装好证书之后,还差最后最关键的一步:进行网络安全配置

  在 android 项目中的 res>xml 下新建一个 xml 文件,文件名随意,如果没有xml 文件夹,自己新建一个

 比如我的文件名是:network_security_config.xml

然后里面配置上如下内容

      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
      <!-- 支持 Android 9.0 以上使用部分域名时使用 http -->
      <domain-config cleartextTrafficPermitted="true">
      <domain includeSubdomains="true">host地址(改成自己项目的)</domain>
      </domain-config>
      <!-- 支持 Android 7.0 以上调试时,信任 Charles 和 Fiddler 等用户信任的证书 -->
      <debug-overrides>
           <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
          </trust-anchors>
     </debug-overrides>
     </network-security-config>

其中只有 host地址(改成自己项目的)这个部分改成自己的 主机地址,其余地方不变,这个配置的意思就是 允许所有 调试 版本的app进行 https 的抓取

也就是说正式版本是抓不到的哦 ,如果想要抓正式版本,可以修改成

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

这个就一点不需要改了,不过不建议这样写哦,以免发版时忘记注释,倒置自己的数据被抓取到了。

然后,将此文件的路径配置到清单文件的 Application 标签中即可

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

OK,这样就搞定了,快去试试吧~

相关文章

网友评论

    本文标题:android 使用 charles 抓取 https 接口,小

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