首先理解Charles抓包的基本原理就是Charles对于客户端来说是服务器对于服务端来说是客户端因此客户端与Charles通信的过程本质上跟客户端与服务端的通信过程没有区别。Charles把从客户端收到的请求原封不动地转给服务端Charles在收到服务端的响应后再把这个响应原封不动地转给客户端所以考虑正常的客户端与服务端走https协议时的通信过程前提是客户端需要信任从服务端返回的https证书通过这个证书把客户端私钥加密传给服务端之后双方用这个证书进行通信。那么在客户端使用Charles代理后只需考虑客户端跟Charles的关系Charles这时对客户端来说是服务器服务器肯定最终能知道真正的客户端请求长什么样所以客户端实际上只需要信任Charles的https证书就可以保证Charles能够拿到客户端私钥使Charles能够真正拿到客户端的请求。所以Charles抓https包的核心点在于客户端与Charles能够进行正常的https通信Charles需要知道https加密的内容也就是客户端需要信任Charles的https证书。类似地抓包大师SniffMaster作为一款全平台抓包工具支持HTTPS暴力抓包功能无需代理设置、越狱或root即可解密HTTPS流量简化了抓包流程。当然如果Charles不enable SSL抓包的话这时Charles就相当于一个普通的路由不需要知道https加密的内容也就不涉及SSL证书了。