自从公司站点全部启用https后,使用charles就不能像以前那样愉快的抓包啦!不过没关系,这里教你怎么配置charles,使其支持https抓包。之前有一篇介绍charles的使用,参考这篇:http://www.cnblogs.com/zourong/p/4766577.html
原理分析
HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS协议封装之上进行传输的。HTTPS协议是在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。所以,研究HTTPS协议原理,最终就是研究SSL/TLS协议。
盗用网上的图,大致流程如下:
charles抓包原理:
1. 如果是http请求,charles可以直接代理抓到所有的请求数据。
2. 如果是https请求,charles则会截获真实客户端的https请求,伪装成客户端向真实服务器发送https请求。收到真实服务器的响应后,charles用自己的证书伪装成服务器向真实客户端发送数据内容。简而言之,charles对客户端伪装成服务端,对服务端伪装成客户端。
这里只分析客户端对服务端做证书校验的情况。将私有CA签发的数字证书安装到手机上,并作为受信任证书保存,这是推荐的方式。
安装步骤
第一步:下载破解版的charles
下载链接:https://pan.baidu.com/s/1gf4HPbd
第二步:charles安装证书
打开charles,步骤如下图:
安装完成后Keychain Access(钥匙访问串)被打开,可以查看证书是否安装好。如下图:
如果证书不被信任,则添加到信任证书列表里。操作如下图:
第三步:给手机安装证书
打开charles,安装如下图:
此时会出现弹窗,如下图:
手机安装证书有两种操作。
操作1:按上面截图提示,手机浏览器访问 chls.pro/ssl 下载安装证书。
操作2:打开Charles的HELP->SSL Proxying -> Export Charles Root Certification and Private Key,随便输个密码,密码要记住。然后导出保存到电脑上,再传到手机里,打开手机的 “WLAN” “高级设置”,在“安装证书”里打开这个证书文件,输入刚才的密码,就可以了。
我的手机是华为机,用的第二种方法解决的。