最近使用Charles遇到报错,网上各种查询百度了,好些没有什么实质性的用处。今天把报错以及处理过程记录下来。那接下来先看一下遇到的第一个问题。

报错问题一:Not allowed POST https://ulogs.umeng.com/unify_logs - connection dropped


问题的背景补充,当时为了抓包手机上https请求,手机配置好代理后浏览器访问“chls.pro/ssl”下载证书,safari页面报错如下,检查charles上报错信息是“Not allowed POST https://ulogs.umeng.com/unify_logs - connection dropped”,(charles上有展示信息说明和电脑的网是通的,网链接问题可以排除)


问题分析:这个报错主要是因为charles不小心配置了白名单,而访问的地址又不在白名单内,所以就没法下载证书了。同样如果出现这个报错failure:“Not allowed GET https://gspe79-ssl.ls.apple.com/72/v1/72/98980423 - returned error response”也是因为白名单


找到问题了就好解决了,关掉了白名单再去访问“chls.pro/ssl”下载证书就ok了。

关闭白名单版本V4.5.6为例:Tools》Allow list》enable allow list的勾勾去掉点击ok就好了。有的版本在Tools》white list关闭。

问题二:如何检查电脑和手机是否链接上,以及未连接上相关问题处理

点击任务栏最后一个settings图标》access control settings可以看到弹框的列表所有链接上的手机ip地址,检查当前手机的ip是否在上面,如果不在可以做以下处理。另外列表里的ip点击后可以remove删除。


处理建议:检查是否勾选了允许弹出提示框,这里需要保持打勾的。然后在浏览器中输入“chls.pro/ssl”时,charles中会显示下面这个弹框,再点击allow后,手机端就可以下载证书了。



报错问题三:SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations


问题背景补充,此时手机上已经下载并安装好证书了,但是请求https时显示。为啥还是不能抓取呢,看这上图的报错,已经提示https还要设置Proxy Settings。那问题就迎刃而解了。

设置Proxy Settings步骤:proxy》SSL  Proxy Settings》勾选上enable ssl proxying并在Location中设置通用ip端口,见下图,这样设置好后,就可以顺利抓到https