使用 Charles 解决部分App无法上网的问题(SSL Pinning)

时间:2024-04-08 22:08:56

使用 Charles 解决部分App无法上网的问题(SSL Pinning)
设置好 Charles 代理之后发现打开目标 App debug 的时候弹窗“网络异常”提醒,测试 Safari 正常和其他 App 发现大部分都可以打开。

Google之后发现这是因为该 App 使用了SSL Pinning 的原因。SSL Pinning 意味着 App 拷贝了一份服务器的公钥在本地,在进行网络连接的时候使用了本地的公钥进行加密了。由于 Charles 的**无法匹配导致拒接网络访问。

那么有没有什么办法可以突破这种限制呢?

1、其中一种思路是使本地的证书失效

2、另外一种是 SSL 剥离,过渡阶段的时候同个域名服务器一般都会有 http 和 https 两种请求方式,那么是否可以通过拦截https请求,然后修改为http呢?

3、越狱插件(nabla-c0d3/ssl-kill-switch2 )
蚂蚁源可以找到这个插件:apt.cydia.love ,安装完成之后在设置栏会多出一栏设置,在里面打开开关就可以了。

网上找了一下,发现已经有人做了这方面的调研了,这里就直接记录下资源的集合就好了。

如何对使用了ssl pinning的APP(如知乎)进行抓包?
**https的SSL Pinning(Android)

另外这里有一篇介绍关于 Charles 使用的文章,raywenderlich 出品,感觉不错,可以看一下。

Charles Proxy Tutorial for iOS