0

用例是:

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

我想出的解决方案是设置一个本地http代理,它可以先记录所有http流量,然后重播,然后应用程序正在运行性能测试。

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

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

4

1 回答 1

0

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

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

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

我怀疑 Android 是否支持 (b) 和 (c)。

于 2012-12-17T06:59:13.397 回答