如何设置具有记录/重播功能的http(s)代理?

时间:2012-12-17 05:02:20

标签: android ssl https proxy

用例是:

我想做一些Android应用程序性能测试,我想在应用程序从网上获取时修复数据。

我提出的解决方案是设置一个本地http代理,它可以先记录所有的http流量,然后重播,然后app正在运行perf测试。

我找到了http://mitmproxy.org/,它具有我想要的功能。但似乎使用默认设置,它不能用作https代理。我尝试使用它作为代理并登录到Facebook但不起作用。

我不熟悉https协议以及证书的工作原理。任何人都可以提供一些帮助吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

HTTPS代理与HTTP代理非常不同 - 代理服务器接收CONNECT命令并在客户端和CONNECT命令参数中指定的服务器之间建立不透明通道。因此,您无法通过这种方式轻松捕获HTTPS流量。

通常,您可以使用HTTP代理进行HTTPS连接,在这种情况下,代理充当HTTP代理,并在客户端与其自身之间以及服务器与自身之间建立SSL通道。代理向客户端提供其自己的证书(通常是自签名的,因为这些proix主要用于开发和监视目的)并验证远程服务器的证书。

上述方案要求(a)HTTP代理可以执行此操作(“mitmproxy”表明它确实如此),(b)客户端支持此类配置,以及(c)代理的证书可以在其上验证或信任客户端。

我有一些疑问,Android上支持(b)和(c)。