用例是:
我想做一些Android应用程序性能测试,我想在应用程序从网上获取时修复数据。
我提出的解决方案是设置一个本地http代理,它可以先记录所有的http流量,然后重播,然后app正在运行perf测试。
我找到了http://mitmproxy.org/,它具有我想要的功能。但似乎使用默认设置,它不能用作https代理。我尝试使用它作为代理并登录到Facebook但不起作用。
我不熟悉https协议以及证书的工作原理。任何人都可以提供一些帮助吗?非常感谢。
答案 0 :(得分:0)
HTTPS代理与HTTP代理非常不同 - 代理服务器接收CONNECT命令并在客户端和CONNECT命令参数中指定的服务器之间建立不透明通道。因此,您无法通过这种方式轻松捕获HTTPS流量。
通常,您可以使用HTTP代理进行HTTPS连接,在这种情况下,代理充当HTTP代理,并在客户端与其自身之间以及服务器与自身之间建立SSL通道。代理向客户端提供其自己的证书(通常是自签名的,因为这些proix主要用于开发和监视目的)并验证远程服务器的证书。
上述方案要求(a)HTTP代理可以执行此操作(“mitmproxy”表明它确实如此),(b)客户端支持此类配置,以及(c)代理的证书可以在其上验证或信任客户端。
我有一些疑问,Android上支持(b)和(c)。