1、首先保证电脑和手机连接在同一个wifi下
2、设置charles端口, Proxy -> Proxy Settings -> Proxies,Port 设为8888,其他保持默认不动,确定。
3、打开手机连接的wifi 的高级设置或修改网络页面,高级选项中,代理设为手动,代理服务器主机名设为电脑的IP地址,代理服务器端口设为8888,确认保存。然后在电脑上charles的弹框中点击allow。此时只能抓取http的包。
此时如果打开手机应用抓包,会发现https请求显示unknown,请求详情中提示“Client SSL handshake failed: An unknown issue occurred processing the certif...",是因为手机没有安装证书。
4、安装证书(PC端证书:mac、windows,移动端证书:android、ios)---用于抓取https请求
手机安装证书,可以在charles官网下载,也可以从charles中导入,再安装到手机上。(如果需要抓包电脑端的https请求,也需要在电脑端安装证书。https=http+ssl)
方法a、手机访问官网下载:用手机浏览器访问网址chls.pro/ssl,即可下载安装证书(Help ->SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser,会弹出证书安装提示框,里面会显示需要配置代理的IP和端口及证书下载网址。)
方法b、导出证书安装到手机:从charles导出证书,Help ->SSL Proxying -> Save Charles Root Certificate..., 将证书存储到电脑上,再将该证书保存到手机中。然后打开WLAN的高级设置,找到证书管理 ->安装证书,选择刚刚存到手机中的证书,安装完成
(附:mac电脑端安装证书:Help ->SSL Proxying -> Install Charles Root Certificate,点击后跳转到钥匙串页面,双击证书,设置为始终信任,安装完成。
)
5、charles的SSL设置---用于抓取https请求
Proxy -> SSL Proxy Settings...,在SSL Proxy Settings窗口中勾选Enable SSL Proxying,然后点击Add,Host不填,表示抓取所有的请求,Port可以不填,也可以填写443,(443是https常用端口),点击OK。此时设置完成,charles可以抓取https请求了
6、另:android6.0以上由于安全性考虑,现在已经默认不信任charles证书了。所以默认android6以上的系统不支持Charles抓取HTTPS的包。所以一般用测试包抓取https请求,一般测试包会打开抓包开关,如果仍然抓不到,需要和开发确认。