一、HTTPS原理:
二、抓包
1)抓包的原理
Charles本身是一个协议代理工具,如果只是普通的HTTP请求,因为数据本身没经过再次加密,因此作为代理可以知道所有客户端发送到服务端的请求内容以及服务端返回给客户端的数据内容,这也就是抓包工具能够将数据传输内容直接展现出来的原因。对于HTTPS请求,传输过程的数据都已经经过了加密,代理如果什么都不做的话是无法获取到其中的内容的。为了实现这个过程的数据获取,Charles需要做的事情是对客户端伪装服务端,对服务端伪装客户端,具体
- 截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
- 接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容
手机抓包
1、打开charles,必须保证手机和电脑是在一个局域网里面
2、手机设置代理
服务器写你电脑的ip
端口号呢,默认是8888
完成了以上两个步骤就可以抓到http请求的数据了
如果要抓取https请求的数据,还需要进行如下设置:
3.设置charles ssl代理
点击Proxy->SSL Proxy Settings,弹出一个ssl代理设置界面
1).Enable SSL Proxying复选框打上勾
2).在里面添加*.443就可以了
右击connect的https 弹出框 ,SSL Proxying:Enabled,这样就可以了
4.手机下载ssl证书
1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...
会弹出一个提示框,如下显示:
浏览器输入这个地址即可下载证书,记住要用Android自带的浏览器. 地址是:http://charlesproxy.com/getssl
2).然后按照他的提示安装证书即可.
如何模拟手机弱网进行测试?
1.打开Charles,Proxy->Throttle Setting,设置上传下载速度