写在前面
开发时,面对各种接口数据,绝大多数时间都会用Charles抓包进行数据分析,但也总会有那么些情况让人抓狂:
- Bugfix,线下环境(非https)数据少,满足不了bug出现的情况,无法一边抓包一边改bug
- 线上环境(https)有接口数据,线下环境无接口数据的bug,这个时候抓包突然显得很苍白无力,Charles抓不了https包╯ ︵╰(‵□′╰
https抓包的实现
(一)首先,电脑得装个证书
(1)先去官网下载证书,不然会报“无法找到证书”错误(官网注明说该证书在v3.10上会失效,我安装能正常工作...)
官网地址:https://www.charlesproxy.com/download/
(2)进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate ,会打开证书,安装进去
(3)当安装后,可能你看不到在哪里,在右上角的搜索中 输入 cha 则会显示出来,你看到上面是 此根证书不被信任
(4)在证书上右键 - 显示详情 ,展开信任 选择 始终信任,然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了
(二)然后,移动设备上安装证书
这里不以ios为例,以Android模拟器为例~~打开模拟器浏览器,在浏览器中输入http://charlesproxy.com/getssl,然后会弹出一个界面,让输入证书名字,直接输入charles就ok啦,安装成功后会提示证书安装成功
(三)最后,Charles添加SSL Proxying
(1)进入Proxy-》SSL Proxying Settings
(2)勾选“Enable SSL Proxying”,并点击下方的Add
(3)在弹出的“Edit Location”中,输入Host和Port都为“*”(看提示这样配置可以抓到所有https的包),然后进行添加
(4)确保模拟器/手机将电脑的IP地址设置为代理,端口号为8888,具体教程点这里
这下就可以愉快的抓https包,https拦截里不再是unknown了~~
(四)IOS证书安装完成后,添加信任问题
(1)进入通用 - 》关于本机
(2)上拉到最底部,证书信任设置
(3)把刚才安装的证书允许就行了