Mac下使用Charles抓包https

Charles

开始

最近看了一下Mac的网络转包,发现Charles这款工具挺好用的,配置一下证书可以抓包https, 我抓取得是iOS设备,其他类似

步骤

抓取http

  • 打开Charles
  • 打开help -> SSL-Proxying -> install Charles root…,如下图位置
    Charles
    Charles
  • 需要将iOS设备和Mac的连到同一网络,在iOS上设置代理,点击设置-无线局域网下-WiFi名称后的感叹号,配置代理,改为手动,服务器填写上面弹出框的的IP地址,端口填写上面的端口号
  • 再在Mac上allow Charles的弹出框即可,这样已经是可以抓取http协议的包了

抓取https

上述步骤一样,只是需要配置证书了

  • 在iOS设备上的Safari浏览器中输入链接chls.pro/ssl,下载安装证书
  • Charles上需要做额外的设置,点击Proxy->SSL Proxying Settings…如图
    Charles添加,host填写*,port填写443,这样就可以抓取所有的https了

问题

https显示红色的<unknown>

如果还是抓取不到,显示红色的unknown, 则还是证书的问题,在iOS设备上的设置中,搜索信任证书设置,将针对根证书启用完成信任勾选即可

如果要抓取Mac上https

在help->ssl-Proxying->install Charles root Certificate 即可

更多可以查看官方文档

更多设备的配置方案

抓取原理

Charles利用的是中间人攻击,Charles需要做的事情是对客户端伪装服务端,对服务端伪装客户端,具体

  • 截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
  • 接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容
坚持原创技术分享,您的支持将鼓励我继续创作!