测试笔记4——Charles的https抓包方法

前言

前面一篇博客讲的是HTTP的抓包设置,遇到HTTPS我们要怎么办呢?这篇博客就聊聊怎么抓HTTPS的包。

Https通信的过程

  1. 客户端请求服务器Https证书;
  2. 服务器返回Https证书到客户端;
  3. 客户端校验证书并发送对称**到服务器;
  4. 服务器校验通过,服务器回应客户端,建立链接;
  5. 双端使用对称**进行通信。

Charles的Https的抓包原理

过程中存在客户端、Charles和服务器三方,Charles是中间方负责客户端与服务器之间的通信。

  1. 客户端向服务器请求证书;
  2. Charles拦截到了客户端的请求,代替客户端向服务器发送请求;
  3. 服务器识别失败,向客户端(Charles)返回证书;
  4. Charles拦截到了服务器返回的证书,向客户端返回Charles自己生成的证书;
  5. 客户端信任了Charles返回的“证书”,用Charles公钥加密对称**,发送给“Charles”(假服务器);
  6. Charles拦截,用自己的**解密对称**,如何用服务器返回的公钥加密发给“服务器”;
  7. 服务器解密对称**,发送响应给Charles;
  8. Charles解密报文,修改证书;

Charles设置Https抓包

  1. PC端安装Charles证书;
    测试笔记4——Charles的https抓包方法
    测试笔记4——Charles的https抓包方法
    上图中点击下一步,如何点击信任或者确定就会显示导入成功了。

  2. 配置SSL的抓取域名;
    测试笔记4——Charles的https抓包方法
    测试笔记4——Charles的https抓包方法
    上图Add添加*是代表所有的意思。上面是PC端的Https抓包配置完成。

  3. 在手机端或者远程浏览器上面安装SSL证书;
    测试笔记4——Charles的https抓包方法
    测试笔记4——Charles的https抓包方法
    图中有说到:请注意,在IOS10及以后版本中,您必须进入设置>常规>关于>证书信任设置,并启用Charles证书信任。

  4. 在手机端浏览器输入网址“chls.pro/ssl”;

  5. 下载并信任该证书;