前言
前面一篇博客讲的是HTTP的抓包设置,遇到HTTPS我们要怎么办呢?这篇博客就聊聊怎么抓HTTPS的包。
Https通信的过程
- 客户端请求服务器Https证书;
- 服务器返回Https证书到客户端;
- 客户端校验证书并发送对称密钥到服务器;
- 服务器校验通过,服务器回应客户端,建立链接;
- 双端使用对称密钥进行通信。
Charles的Https的抓包原理
过程中存在客户端、Charles和服务器三方,Charles是中间方负责客户端与服务器之间的通信。
- 客户端向服务器请求证书;
- Charles拦截到了客户端的请求,代替客户端向服务器发送请求;
- 服务器识别失败,向客户端(Charles)返回证书;
- Charles拦截到了服务器返回的证书,向客户端返回Charles自己生成的证书;
- 客户端信任了Charles返回的“证书”,用Charles公钥加密对称密钥,发送给“Charles”(假服务器);
- Charles拦截,用自己的密钥解密对称密钥,如何用服务器返回的公钥加密发给“服务器”;
- 服务器解密对称密钥,发送响应给Charles;
- Charles解密报文,修改证书;
Charles设置Https抓包
-
PC端安装Charles证书;
上图中点击下一步,如何点击信任或者确定就会显示导入成功了。 -
配置SSL的抓取域名;
上图Add添加*
是代表所有的意思。上面是PC端的Https抓包配置完成。 -
在手机端或者远程浏览器上面安装SSL证书;
图中有说到:请注意,在IOS10及以后版本中,您必须进入设置>常规>关于>证书信任设置,并启用Charles证书信任。 -
在手机端浏览器输入网址“chls.pro/ssl”;
-
下载并信任该证书;