美文网首页iOS 开发~项目常用,经典内容收集工具java
使用Charles对iPhone进行Http(s)请求拦截(抓包

使用Charles对iPhone进行Http(s)请求拦截(抓包

作者: iWe | 来源:发表于2017-06-26 11:57 被阅读6255次

    首先准备工具

    1> Charles (下载对应操作系统的安装包进行安装,本文使用 macOS 进行演示)

    2> iPhone (本文使用SE,系统版本:iOS 10)

    开始

    首先,对Charles进行配置:

    菜单:Proxy -> Proxy Settings... -> 勾选 Enable transparent HTTP proxying

    Proxy -> Proxy Settings

    然后找到电脑的局域网IP地址:这里自己去找吧

    接着,打开你的iPhone:设置 -> Wifi -> 连接上和电脑同一路由器的Wifi,点击右边的 i 进入配置

    配置:拉到底部,找到 <HTTP代理>, 选择手动, 服务器填入电脑的IP地址,端口号写 8888 然后返回会刷新Wifi连接

    设置 -> Wifi -> i -> HTTP代理 手动

    此处配置完成后,Charles会弹出提示框,

    大意是:有人请求连接Charles ip是xxx.xxx.xxx.xxx是否允许?

    这里要注意!!!Charles的默认选项是Deny拒绝,所以一定不要按回车!!! 手动选择Allow!!!

    到此,即可正常抓取iPhone的连接。

    但,目前苹果的大部分App都采用了更安全的HTTPS进行数据交互,所以我们要抓取HTTPS还需要进一步的配置。

    继续

    回到Charles,进行证书安装:

    Charles菜单:Help -> SSL Proxying -> Install Charles Root Certificate 点击后自动打开钥匙串访问,请输入电脑开机密码

    Help -> SSL Proxying -> Install Charles Root Certificate

    完成后你会看见两个证书:

    两个证书

    双击证书,打开证书详情:展开信任 -> 使用此证书时:修改为 始终信任,关闭证书详情要求输入开机密码

    信任 -> 使用此证书时

    两个证书都设置为始终信任。

    接着,安装手机端的证书:

    回到Charles,菜单:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser

    Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser

    点击后会弹出对话框,大意是:配置你的设备来使用Charles,证书下载地址:chls.pro/ssl

    配置手机端证书

    打开手机Safari,访问下载地址:chls.pro/ssl  (如果我们显示的不同,则以提示中的地址为准)

    正常情况下访问此地址会请求安装一个配置文件。若无请求请检查Wifi是否设置了 HTTP代理 (参考配置图:设置 -> Wifi -> i -> HTTP代理 手动)。

    手机端安装证书1

    点击安装:

    手机端安装证书2

    网上很多教程到这就结束了,但返回Charles会发现还是无法正常抓取HTTPS的请求。

    其实还有一个设置,信任证书:

    打开iPhone设置:通用 -> 关于手机 -> 拉到最底部 证书信任设置 -> 勾选刚刚安装的证书

    信任证书

    好了,回到Charles进行最后的收尾设置:

    菜单:Proxy -> SSL Proxying Settings...

    Proxy -> SSL Proxying Settings...

    勾选:Enable SSL Proxying,点击 Add 添加规则

    域名:配置完上述所有内容后,你会在Charles中看到很多请求,都是以域名为标题的

    域名:配置完上述所有内容后,你会在Charles中看到很多请求,都是以域名为标题。

    端口:恒定为443

    若不需要指定HTTPS连接(即抓取所有HTTPS连接),域名填写 * 即可。

    配置 SSL Proxying

    TIPS:

    > WIFI代理,请在不需要使用的时候关闭,否则可能导致手机无法正常联网。

    > 若Charles界面一片空白

    一片空白

    点击菜单:File -> New Session

    File -> New Session

    然后就有了

    有了

    测试数据:获取QQ中的QQ天气

    QQ天气

    完。

    相关文章

      网友评论

      • 陆宝宝:写的很详细,我都按照这个配置了,但是Charles 显示接口,却不显示数据是什么原因呢?在线求帮忙解答~多谢
      • zerokong:问一下 最后一张图上面 抓包里面显示的是IP不是域名 这个是怎么配置的
      • 51d110d37245:大神,我不小心点了拒绝怎么办,重启也不好使
        kitimios:https抓包,iPhone和电脑还必须在同一网段下才行。
        iWe:Charles菜单:Proxy -> Access Control Settings,把你的手机IP地址添加进去,勾选 Prompt to allow unauthorized connections
        iWe:尝试将Charles完全卸载后重装。
        我记得有个设置的位置,找到了再回复你。
      • 15d4f1b921d9:我发现这个与我用的相同之处了,哈哈
      • a48dec3669ff:写的很好。找了半年了没找到。感谢大神。膜拜
        ecac7ef86eaf:这就很有灵性了
        iWe::joy: 强行膜拜

      本文标题:使用Charles对iPhone进行Http(s)请求拦截(抓包

      本文链接:https://www.haomeiwen.com/subject/ijbdcxtx.html