charles 使用中手机无法抓取https包(iphone)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了charles 使用中手机无法抓取https包(iphone)相关的知识,希望对你有一定的参考价值。
参考技术A 问题:iphone按照官方步骤安装证书后手机无法抓https包,且https页面无法打开,手机上显示高级私密,点击详细表示证书出错,
检查证书发现已经被验证。
问题确定:证书虽然被验证但是没有被打开。
解决方案:将证书开关打开
证书安装后一共有两个地方需要被设置:
第一步:验证
打开【设置】 > 【通用】 > 【描述文件】 > 打开"Charles Proxy CA"证书,显示已验证。
第二步:打开
打开【设置】 -> 【通用】 -> 【关于本机】 -> 【证书信任设置】(这个在页面最下面),将Charles证书开关打开。
电脑版的一开始也无法抓到包,重新装了两次证书还是无法抓到,但是此时iphone可以抓到包,本地的python请求可以抓到包,唯独chrome无法抓到包,问题定位到Chrome上,仔细查找原来是因为它:
这个相当于一个代理,暂停一下,再重启chrome就可以开心的抓包了。
手机通过Charles抓取https包
因为fiddler不能在mac上使用,而Charles是跨平台的,可以在mac上使用,所以需要了解一下Charles的使用
安装破解版Charles
下载破解版包,先启动一次未破解版的Charles,然后再替换包内容的java下的Charles.jar
![](https://image.cha138.com/20210608/e565bf844fcc4bdb8504e7e70e4ac7d0.jpg)
破解版下载地址(如果不幸的又不能下载了,那就网上随便搜一个吧):
http://download.csdn.net/download/m694449212/9770583
https://pan.baidu.com/share/link?shareid=2768818025&uk=1281550132
第二个网址为破解的charless.jar,第一个下载地址中的有点问题
手机通过Charles抓取https
第一步:配置Charles,允许抓取https包
Proxy->SSL Proxying Settings…,勾选Enable SSL Proxying,Add一个locations,通过通配符* 抓取所有域名的https。(如果想只抓取某个域名的,设置具体域名的即可)
![](https://image.cha138.com/20210608/a5b1218d75b24c9b8eddd3b9948c49e7.jpg)
![](https://image.cha138.com/20210608/12afc1d93a00490e83f4bd682742b7d6.jpg)
![](https://image.cha138.com/20210608/e4631c140c3a4999b3a4b754d5227088.jpg)
Host可以使用通配符*或?进行匹配,如果想抓取所有域名的,直接用*即可(Add一个新的Location,然后直接点OK就创建了),如果特定想抓取某个域名的,可以直接在Host那里写具体Host。
第二步:手机端配置PC的代理
1.在手机的WIFI设置里,修改网络,手动添加代理。
![](https://image.cha138.com/20210608/8f7dded4cd1640e4a3e73c91d663c0c5.jpg)
代理服务器主机名:使用PC的本机IP地址
代理服务器端口:使用Charles设置的Port值,Charles按照下图方式配置Port
![](https://image.cha138.com/20210608/79239344de62445aa576e8a4911e06e4.jpg)
![](https://image.cha138.com/20210608/26e889b7d50b4afeaea6bafeb5b3f665.jpg)
2.第一次配置完代理,需要在PC端进行允许操作,详见下图的Allow(如果不小心关了下面的弹框,可以重新配置一下手机代理或在Charles里手动添加)
![](https://image.cha138.com/20210608/70db0b009ab2404a88b985391704e327.jpg)
Charles里添加允许访问的IP的方法:
![](https://image.cha138.com/20210608/7bff7dd30c26472d969afcaa1a326da5.jpg)
![](https://image.cha138.com/20210608/7164568935ce4aeba257a8c40b96b972.jpg)
第三步:PC端Charles安装https证书
Help->SSL Proxying ->Install Charles Root Certificate,然后在钥匙串中信任证书即可
![](https://image.cha138.com/20210608/639f4f90b1434878b99a632cd25fd702.jpg)
![](https://image.cha138.com/20210608/745ab89ba4b646e28a7317d4a4f26dae.jpg)
第四步:手机端下载Charles的证书
根据Help->SSL Proxying ->Install Charles Root Certificate on Mobile Device or Remote Browser...获得下载证书的地址,操作如下图:
![](https://image.cha138.com/20210608/66578107d8e94d09bba6bb0581623fae.jpg)
手机浏览器打开网址下载证书:http://charlesproxy.com/getssl
安装证书即可,特殊机型说明如下:
1.小米安装比较特殊,需要在设置->其他高级设置->安全和隐私->凭据存储->从存储设备安装->选择下载的证书安装
2.ios10以上系统,需要在设置->通用->关于本机,信任安装的证书
![](https://image.cha138.com/20210608/c9f103d38406440792e2b65d78d24cd4.jpg)
然后就可以抓包了
![](https://image.cha138.com/20210608/8f6e270e9e8c46558991840316650328.jpg)
抓取包注意事项:如果要抓取Safari等浏览器的包,必须勾选Proxy->macOS Proxy,否则没进行抓包
![](https://image.cha138.com/20210608/4b5349826ab748cb9d397fa322e31922.jpg)
以上是关于charles 使用中手机无法抓取https包(iphone)的主要内容,如果未能解决你的问题,请参考以下文章
Charles抓包以及解决抓取HTTPS请求unknown的问题