Charles https

作者: hi_vincent | 来源:发表于2018-04-16 14:41 被阅读0次

Charles实现对Https进行抓包,使用的原理就是中间人技术(man-in-the-middle)。Charles会动态生成一个使用自己根证书签名的证书,Charles接收web服务器的证书,而客户端浏览器/客户端 接收Charles生成的证书,以此客户端和Charles之间建立Https连接,Charles和Web服务器之间建立Https连接,实现对Https传输信息的抓包。如果Charles根证书不被信任则无法建立Https连接,所以需要添加Charles根证书为信任证书。

如何使用

  1. 给Mac安装证书。

      打开Charles,在Menu选择HELP > SSL Proxying > Install Charles Root Certificate,Keychain Access(钥匙访问串)被打开,我们可以看到Charles Certificate已经被安装.
    

    2. 信任证书

     但此时该证书并没有被信任,双击该行弹出证书详情,选择“Always Trust”。
    

    3. 给手机安装证书

      打开Charles,在Menu选择Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser,弹出提示框,如图:
    
      IP配置之后用手机浏览器打开[http://charlesproxy.com/getssl](http://charlesproxy.com/getssl) (chls.pro/ssl)下载证书。如果是Android设备,选择设置→从储存设备安装。
    
      **小米手机**安装证书失败后,尝试以下安装方式:
    
    • 按照Charles的提示,PC打开 chls.pro/ssl
    • 下载得到一个 charles-proxy-ssl-proxying-certificate.pem 证书
    • 传送到手机(姿势自选)
    • 设置 > 更多设置(系统和设备) > 系统安全 > 从存储设备安装

    4. 开启SSL代理功能

  2. 在Menu选择Proxy->SSL Proxying Setting,选中Enable SSL Proxying,在Locations里面添加要使用SSL代理的网站,端口号输入443,如果需要匹配所有的HTTPS网站则输入 * 号即可。现在即可拦截Https的数据包。

问题描述和解决

按照charles官方文档,在Help里安装ROOT CERTIFICATE后,在Proxy中勾选MacOs Proxy后,charles加载的content内容仍然是乱码,示例如下图:

屏幕快照 2017-12-18 上午11.28.11.png

即使按照官方文档,配置了针对chome浏览器的证书,仍然显示乱码,请教同事,原来还需要在Proxy - SSL Proxying Settings进行配置,配置如下:


屏幕快照 2017-12-18 上午11.34.32.png

需要添加.,表示对所有的SSL request 和response能够进行响应,证书才能够起到作用,如果此处不配置,即使安装证书,也没有进行签名。点击ok,重新加载https网页,content等内容乱码消失,显示正常内容。

屏幕快照 2017-12-18 上午11.43.39.png

相关文章

网友评论

    本文标题:Charles https

    本文链接:https://www.haomeiwen.com/subject/sghekftx.html