IOS Charles HTTPS接口抓取

Mac使用Charles抓取ios手机APP中的https请求

1.配置Http代理

IOS Charles HTTPS接口抓取_第1张图片

 Port为监听端口号,默认为8888,勾选Enable transparent HTTP proxying,接着勾选SOCKS proxy,可以监听Socks请求

IOS Charles HTTPS接口抓取_第2张图片

2.安装Charles Root Certificate,路径为Help->SSL Proxying ->InstallCharles Root Certificate

IOS Charles HTTPS接口抓取_第3张图片

 3.安装后在钥匙串中会有一条未信任的证书,双击该证书

IOS Charles HTTPS接口抓取_第4张图片

 4.跳转到该证书的设置,修改到如图

IOS Charles HTTPS接口抓取_第5张图片

4.配置SSL代理,Proxy->SSL Proxying Settings选项,点add添加需要监视的域名,支持 *号通配符,端口一般都是443

IOS Charles HTTPS接口抓取_第6张图片
IOS Charles HTTPS接口抓取_第7张图片


 5.配置手机的证书 help->SSL Proxying install Charles

IOS Charles HTTPS接口抓取_第8张图片

6.使用手机配置代理地址ip和端口号,配置完成之后在手机浏览器中输入chls.pro/ssl下载Charles证书并根据提示安装

IOS Charles HTTPS接口抓取_第9张图片
IOS Charles HTTPS接口抓取_第10张图片

7.安装完成后IOS手机需要在设置->通用->描述文件与设备管理中信任安装的Charles Proxy CA证书

8.最后需要在IOS手机中设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可

IOS Charles HTTPS接口抓取_第11张图片

Charles 使用过程中遇到问题

1、部分APP无法正常请求网络;网页能打开,但是显示的全是HTML代码。

  解决: 我之前设置的端口号是8888, 我改为8899就解决了。

2、手机安装证书,无法打开chls.pro/ssl

  解决: 应该也是端口号问题,更改端口号后,手机技能能通过该网址下载证书了。

3、SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations

解决如下:

IOS Charles HTTPS接口抓取_第12张图片
IOS Charles HTTPS接口抓取_第13张图片

4、You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

解决如下:

iPhone系统更新到iOS 10.3后,https的请求都会失败,提示错误信息为Failure SSLHandshake: Received fatal alert: unknown_ca 和You may need to configure your browser or application to trust the Charles Root Certificate. 然而之前任何问题都没有,并且相关设置都正确:Mac上安装了Charles的根证书,并且设置了始终信任,然后手机上也登录了http://chls.pro/ssl安装了描述文件,一切都按正常程序走的,但是错误始终无法解决.

相关环境:

Charles 4.2

iPhone 7P iOS 11.0.2

原因

设置->通用->描述文件->charles proxy custom root certificate

虽然charles的根证书已经在安装列表中显示,但它是被关闭的。在iOS 10.3之前,当你将安装一个自定义证书,iOS会默认信任,不需要进一步的设置。而iOS 10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。

解决

设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.


 

你可能感兴趣的:(IOS Charles HTTPS接口抓取)