1 本机环境
Mac 10.13.6
Charles v4.0.2
iPhone7 ios12.4
适用场景:
在mac上配置好Charles ,在手机端设置代理,手机APP发送https请求时,可以通过抓包看到请求的内容
2 Charles配置
A 配置mac上的根证书:
B 手机配置代理,及安装根证书
弹框提示如下
在iPhone手机的无线网络中选择跟PC同一网段,点击感叹号,在最下边找到“HTTP代理” 配置代理手动,服务器地址和端口分别填写上述的地址,本例子中是:192.168.1.5 端口号是8888。 根据自己的实际情况填写
C 手机安装证书:
手机打开Safari浏览器,地址栏输入
chls.pro/ssl
弹框提示
点击允许,在“设置”我的账户下边多出了一个“已下载描述文件”,点击该条目
点击右上角的安装,安装完成之后如下图所示:
找到,设置-通用-关于本机-证书信任设置
将对应证书的开关打开:
这样,电脑端和移动端的证书就都配置好了,手机端的代理也配置好了,此时在手机端打开要抓包的APP,开始进行网络请求:
Charles弹出对话框,点击allow即可进行抓包:
D 测试抓包
比如找了一个APP,如北邮人论坛
抓包效果如下:
跟APP的界面的十大新闻显示效果还是能对上滴
E 设置需要抓包的网址
可以把需要调试的接口地址设置上去
注意:地址写https以后的地址就行,端口443
3 Android手机的设置
Android手机7.0之后,即使手机安装了根证书也不能直接进行抓包,会报错
SSLHandshake: Received fatal alert: certificate_unknown
解决方案可参考 :《Android 7.0 之后抓包 unknown 和证书无效的解决方案(无需改代码)》https://blog.csdn.net/ShadowySpirits/article/details/79756274