使用Charles对移动设备进行HTTPS抓包 默认是不可用的
-
homepage –> Proxy –> Proxy Settings
设置proxy接收端口和对外访问需要用到的端口
-
homepage –> Help –> SSL Proxying –> Install Charles Root Certificate on a Mobile Device or Remote Browser
需要安装SSL的certificate
IOS 设备适配
IOS设备 需要下载Charles的根证书, chls.pro/ssl , 允许下载 –> 安装藐视文件 –> 完全信任
Android 设备适配
Androi7.0之后的版本,增加了证书验证,APP内不再默认信任用户设备的证书。
-
在res底下创建一个xml文件夹,然后在内部创建一个名为 “network_security_config.xml”的文件,文件内容如下:
<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>
-
在AndroidManifest里的
标签中,添加代码: android:networkSecurityConfig="@xml/network_security_config"
Note: 这个方法仅供测试使用,会有一些安全隐患,可以参考底部的几个文章改进。
注意事项
- 移动设备和proxy host在同一个 WI-FI SSID内
- proxy可以限制需要访问的域名地址
- proxy host的防火墙设置需要更改