赞
踩
对Charles的安装和使用,这里就不重复介绍了,之前有介绍Charles工具。
本文重点介绍在Android手机上如何配置抓包环境
去Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 查看配置。
ip和端口参数已经在第一步获取
浏览器进入chls.pro/ssl下载证书,下载的.pem格式证书。当设备无法识别时,需要手动将后缀名改为.crt,然后到浏览器的下载管理中选择安装就可以了。
安装后,到设置 -> 安全 -> 信任的凭证 可以看到刚安装的证书
Charles中右键对应HTTPS,选择Enable SSL Proxying启动代理。然后清空Structure,重新请求接口就能看到抓包的数据。
到这里,你会发现并不是所有HTTPS都能抓取,Android7.0 之后默认不信任用户添加到系统的CA证书。
解决方案:
这里就不展开了,除非你要搞逆向。
针对我们自己的Android项目,要抓包HTTPS我们可以在网络完全配置中进行设置。
到 res -> xml 创建一个network-security-config.xml文件,配置如下。
- <network-security-config>
- <base-config cleartextTrafficPermitted="true">
- <trust-anchors>
- <certificates src="system" />
- <certificates src="user" />
- </trust-anchors>
- </base-config>
- </network-security-config>
然后,到清单文件为application配置networkSecurityConfig。
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools">
-
- <uses-permission android:name="android.permission.INTERNET" />
-
- <application android:networkSecurityConfig="@xml/network_security_config" >
-
- </application>
-
- </manifest>
注意:在开发设置 cleartextTrafficPermitted="true" 来允许明文流量,便于我们抓包。但在发布应用时,为了提高应用的安全性,通常建议禁用明文流量。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。