1.https把流量加密了,正常抓包,你看到的内容是一堆乱码。
2.https的加密没有安全问题,但它只是用来防止通信过程中被第三方获取明文。如果黑客能直接控制通信的双方(你的电脑,或服务器),那么黑客肯定能看到https明文的。
3.所以,你用charles之所以能看到https明文,是因为你允许了charles在你的电脑上做手脚,关键就是你同意charles在你电脑上安装证书。
4.具体一点,charles通过使用了https代理功能,来完成查看https明文的目的,也就是SSL中间人攻击。简单来说,你并不是直接与https的另一端通信,而是与charles通信,charles再与另一端通信,这种结构下,charles才能看到通信明文。这个问题的原理比较复杂,涉及到整套RSA系统,想了解原理的话,建议去看【信息安全】相关书籍,但这类书籍的门槛非常高。另外Fiddle也有这个功能,而且原理也一样。