使用 Charles Proxy 将 https 请求路由到本地 http 服务器

Posted

技术标签:

【中文标题】使用 Charles Proxy 将 https 请求路由到本地 http 服务器【英文标题】:Use Charles Proxy to route https request to local http server 【发布时间】:2012-03-07 14:53:38 【问题描述】:

我设置了 Charles Proxy 来查看传出的 https 请求,我需要将流量从一台服务器重新路由到本地 http 服务器。

我有一台这样设置的 MacOSX 机器:我有一个硬连线的以太网连接,并通过机场接口共享互联网连接。在第二台机器上,我安装了 Charles 证书,当我通过共享接口连接时。我可以看到 Charles 中的流量(未加密),所以我知道通信和证书都正常工作。

我需要拦截所有前往一台服务器 (https://www.foo.com) 到本地 http 服务器 (localhost:8001) 的 https 流量。我尝试过使用 Map Remote,但它似乎没有在转发流量之前对流量进行解密(或者它可能重新加密它)。

如何配置 Charles 来执行此操作? (或者,如果 Charles 无法做到这一点,请指点我其他任何软件包)

【问题讨论】:

【参考方案1】:

我弄清楚发生了什么,有两个问题。

我错误地配置了 Map Remote 条目,并且我的两个不同的客户端(MyApp 和 curl)访问了两个不同的服务器 - 应用程序访问了正确的服务器(本地),但请求格式错误。

运行代理的 macOSX 框中的 Curl 没有循环通过代理,因为我没有包含 -x localhost:8888 标志。

【讨论】:

以上是关于使用 Charles Proxy 将 https 请求路由到本地 http 服务器的主要内容,如果未能解决你的问题,请参考以下文章

使用 Genymotion 的 Charles Proxy:监控 https -> 无法读取的响应

为啥启用 SSL 时 Charles Proxy 不起作用?

Charles proxY:在 https 上重写不起作用

如果启用SSL代理,为什么https请求在Charles Proxy上失败

charles 之 ssl proxy 设置(https抓包)

Charles如何使用