Charles抓取iPhone的HTTPS请求
一、电脑上安装Charles软件,需要jar包破解
我安装的是Mac版的4.0.1版本,安装包以及jar包可点击Charles4.0.1下载。 jar包需要把如下路径下的jar包替换掉即可完成破解。
安装后进入应用程序找到Charles,右键显示包内容。
按下图中路径找到charles.jar文件,并把它给替换掉即可。
至此,charles安装破解成功。
此外打开时需要点击Grant Privilege这个按钮同意授权。
二、抓包前手机上需要做的配置。
1.手机和电脑需要连接相同的wifi,并且需配置手机的ip和端口。
按照下图步骤可从charles获取当前电脑的ip
手机端需要按照如下路径: 设置–>无线局域网–>和电脑相同的wifi–>最下边HTTP代理的手动。 服务器后填入:上述的ip;端口后填入:8888。
2.手机端安装证书
按照如下步骤,先在charles中进行如下操作,获取需要下载的证书的链接;在手机safari浏览器中输入该链接下载证书,并验证成功,就可以顺利抓到https的请求了。
在手机safari浏览器中输入上边方框中的链接”chls.pro/sssl”即可跳转到证书下载页面。证书验证成功后的界面如下图所示。
三、抓包体验
此时,在手机上的任何网络请求,charles几乎都可以抓取到了。 例如:打开safari浏览器,进行简单的搜索,抓取到的数据如下图所示。很显然,http请求和https请求都是可以抓取到的。
四、api接口配置
1 点击Charles的Proxy选项 –> SSL Proxying Settings…
2>填写Host和Port, Host为访问的域名(github.com), port写443
五、解决Charles无法正常抓包iOS 11中的Https请求
参考链接:https://www.jianshu.com/p/4005cf4f370d
解决方案 按照以往版本安装 Charles 自签名根证书 Mac 上启动 Charles,在同一个局域网内,把 iOS 设备的代理设置到 Mac机的 Charles 代理端口上。假定 Mac 机 IP 为192.168.1.10,Charles 的默认端口号为 8888,则设置到192.168.1.10:8888。 在 Safari 中访问 http://chls.pro/ssl,根据提示输入锁屏密码,安装自签名根证书。
到了这一步,iOS 10 及以下的操作系统就能正常抓到 https 的请求内容。但 iOS 11则不行,请求状态显示 Blocked。
打开【设置】>【通用】>【关于本机】>【证书信任设置】 把刚才添加的证书后面的 Switch 打开。