mac装机系列:charles安装与配置

苹果系统电脑安装后会提示以下内容:
Charles cannot configure your proxy settings while it is on a read-only volume. Perhaps you are running Charles from the disk image? If so, please copy Charles to the Applications folder and run it again. Otherwise please ensure that Charles is running on a volume that is read-write and try again.
解决:

sudo chown -R root "/Applications/Charles.app/Contents/Resources"
sudo chmod -R u+s "/Applications/Charles.app/Contents/Resources"

安装证书

安装电脑证书

在这里插入图片描述
如果不安装的话接口都是 unknow
在这里插入图片描述

安装手机证书-android

如果你要在真机上调试的话,则需要安装手机证书
在这里插入图片描述

在这里插入图片描述
根据提示在手机浏览器上输入上面的地址:chls.pro/ssl,会进入下载证书页面。(下载之前要先配好下面的wifi代理)
下载完证书,需要安装证书和信任证书。

在不同手机安装证书方式略有差别:
比如Android:WLAN -> 更多WLAN设置 -> 安装证书
信任证书:安全 -> 更多安全设置 -> 加密和凭据

完成上面两部之后,要把手机的请求通过电脑转发,设置如下:
长按wifi -> 修改网络 -> 手动代理 -> 填入服务器和端口(电脑ip和charles的端口也就是上面截图中的8888)

完成之后电脑会弹出:
在这里插入图片描述
点击允许,此手机的ip地址也会出现在Access control Settings的列表中。

也可以设置为 0.0.0.0/0 允许所有,但是一般不需要这么设置:
在这里插入图片描述
如果还是 unknown,报错 Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown),那就是Android机的限制了,可以看这篇文章:
https://blog.csdn.net/mrxiagc/article/details/75329629
https://developer.android.google.cn/training/articles/security-config.html
文件名可以下划线,不能有-
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config>
    <domain includeSubdomains="true">e.xxx.cn</domain>
    <domain includeSubdomains="true">e.xxx.com</domain>
    <trust-anchors>
      <certificates src="@raw/charles_proxy_ssl_proxying_certificate" />
    </trust-anchors>
  </domain-config>
</network-security-config>

安装手机证书-ios

1、wifi -> wifi后的感叹号 -> 设置代理(电脑ip:8888)
2、pc charles -> help -> ssl proxy -> install mobile
3、safari下载该地址 -> 下载完会提示Review the profile in Settings app if you want to install it(如要安装该配置文件,请在设置应用程序中审核)
4、打开设置 -> 点击 profile Downloaded -> 安装
5、设置 -> 关于 -> 证书信任设置 -> 信任你刚刚下载的证书
重启一下你要抓包的应用就好了

设置自动代理

https://chls.pro/192.168.18.229:8888.pac
//一个很简单的调试app pac文件
function FindProxyForURL(url, host) {
    
    
               //这里填写你们公司的host
    if (dnsDomainIs(host, 'xxx.com')) {
    
    
               //这里填你自己的局域网ip,端口号是你在Charles里设置的 默认8888
        return "PROXY 192.168.2.200:8888; DIRECT;";
    } else {
    
    
        return "DIRECT";
    }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

参考资料

https://blog.csdn.net/qq_40993412/article/details/112712929
https://www.jianshu.com/p/9f4ebde9c518

猜你喜欢

转载自blog.csdn.net/weixin_43972437/article/details/123359113