iOS上使用Charles抓包
1、安装Charles;
2、勾选macOS Proxy则是抓取PC端, 那么不够选则是在移动设备上抓包;

3、准备一台插有手机卡的手机A,设置--》个人热点,打开热点;

4、另外准备一台用于抓包的手机B,手机B和PC电脑,都连接手机A的热点;
5、查看PC端的IP地址;

6、手机B,点击连接的热点,设置HTTP代理为手动,并设置代理参数,服务器IP跟PC一致;


7、PC端Charles的Proxy设置,此处的端口号跟代理中的要一致;


8、以上设置完毕,即可抓到iOS手机端的包了;

9、抓包HTTPS请求
在配置iPhone代理完毕后,就可以通过Structure或者Sequence窗口预览HTTP请求的数据了。但由于HTTPS请求被加密过,预览请求时只能预览到乱码数据。要预览到HTTPS请求的数据明文,需要PC和iPhone安装证书授权。
1) PC安装证书
在Charles菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以为PC安装证书,证书可以在Mac的钥匙串中查看。
证书可以在Mac的钥匙串中查看,双击证书,将信任权限设定为始终信任。图示如下:

2) 在iPhone浏览器中访问http://charlesproxy.com/getssl可以下载证书并安装。此地址一般不会变化,可以在Charles菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser中查看最新的官方证书下载地址。
基于iOS的证书信任机制,在安装完成并信任证书后,需要到iPhone设置 -> 关于本机 -> 证书信任设置中启用根证书。图示如下:

这样,就可以使用Charles中抓包iPhone发出的HTTPS请求并预览明文数据了。
10、启动抓包SSL权限
在Charles菜单栏 -> Proxy -> SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。图示如下:

也可以在抓包界面,右键点击某条/组请求,在弹出的选项列表中点击Enable SSL Proxying启用权限。图示如下:
