关于python:解决Charles抓取https报文乱码问题

66次阅读

共计 1604 个字符,预计需要花费 5 分钟才能阅读完成。

  1. 装置电脑端证书

    • Help 菜单下的门路, 下载根证书, 并且在 钥匙串 里设置信赖此证书.

  2. 申请手机证书

在相干的手机 wifi 配置 pc 端代理, 关上 Safari 软件, 输出图片中默认的地址chls.pro/ssl,手机会主动跳转到证书下载界面,下载证书

进入 通用 -> 形容文件 , 装置证书.
进入 通用 -> 对于本机 -> 证书信赖设置, 信赖此证书.

  1. 在菜单Proxy –> SSL Proxying Settings 配置环境:


报错

证书装置的时候,iPhone 拜访:chls.pro/ssl,呈现如下谬误:

Charles Error Report
Name lookup failed for remote host Charles failed to resolve the name of the remote host into an IP address. Check that the URL is correct.
The actual exception reported was: java.net.UnknownHostException: http: unknown error Charles Proxy, http://www.charlesproxy.com/

须要把电脑 DNS 设置为114.114.114.114, 即可解决


Charles 能够抓取 https 报文的原理

原理就是: 中间人攻打

Charles 作为一个中间人来进行 HTTPS 的代理,让咱们检测到浏览器和 SSL web 服务端之间的明文通信。
Charles 把本人变成一个中间人来达到这一目标。你的浏览器是收不到服务端证书的,Charles 会用本人的根证书动静签发一张证书,而后 Charles 来承受服务端的证书,你的浏览器承受 Charles 的证书。

Charles 依然通过 SSL 与服务端进行通信,但通信是通过浏览器到 Charles,而后在从 Charles 到服务器。

艰深版 SSL 协定原理:

  • 小明和小王是一对好基友,然而远隔万水千山,只能通过写信来传递音讯。俩人每天的函件都是通过邮递员小红来传递的,这俩人每天纸条上明文写着信息,小红也天天看的不可开交,这就是 HTTP。
  • 工夫久了,两人发现不行,比方有时候会传递一些不谐和的内容,不心愿小红这样的腐女看到;于是小明眉头一皱; 计上心来,换成葬爱家族的杀马特火星文来进行通信;小王看后,心领神会。因为转换形式两人都晓得,这就是对称加密技术。
  • 然而好景不长,小红勤学苦练,终于练成了火星文十级,又能看懂俩人加密的内容了。俩人必须要更换加密形式,然而更换的加密形式也只能通过小红来传递,所以这个加密的伎俩很难瞒住小红,这就是 HTTP 的不安全性。
  • 正好小明是一位博学的哲♂学家,他立即写了封信给小王:把你家储物间箱子的上那把挂锁寄过来!小王看后立即拿出了那把 82 年的挂锁,把它关上并寄给了小明。这个锁大家都能看到,但只有小王有钥匙,这就是传说中的非对称加密,锁就是公钥,小王的钥匙就是私钥。
  • 小明收到后,认真钻研了那把锁,下面烫着『隔壁老王』四个鎏金大字,正是王家祖传的锁,这就是验证服务端的数字证书。

于是小明释怀的把新的加密形式写在信中,放到盒子里,而后用锁锁上。因为小红没有钥匙,没法查看盒子里到底写了啥,只能原样送过来。小王收到后,用本人的钥匙关上了锁,取得了新的加密形式。这就实现了 SSL 协定的握手。

利用 Charles 之后的场景:

  • 小红拿到锁当前,先扣着不发,而后掏出了本人的锁寄给小明,这就是 Charles 签发了本人根证书;
  • 小明一看这把锁不是正宗王家的,然而小红家的锁,仿佛也能够置信,这就是信赖了 Charles 的根证书;
  • 小明把加密形式写进去,而后用小红的锁锁起来了,小红关上之后钻研了加密形式,发现两人是在用水星文进行交换,霎时水星文也达到了十级,而后在换上小王的锁锁上了盒子,还给了小王;
  • 小王毫不知情,之后俩人用水星文进行交换,但内容曾经全被小红捕捉到了。

参考

本文由博客群发一文多发等经营工具平台 OpenWrite 公布

正文完
 0