Mitmproxy 作为 HTTPS 请求的透明代理

问题描述 投票:0回答:1

我正在尝试使用 mitmproxy 设置代理服务器,它可以处理 HTTP 端点并透明地将请求转发到另一个代理(代理 B)。

这就是我需要的:

  • 客户端无需安装证书或验证自签名证书。
  • 允许“curl -x http://my-proxy:port https://www.example.com”工作,其中 HTTPS 握手直接与目标服务器(例如,Example.com)发生。
  • 我不需要解密或读取流量。但是,我想要请求的日志,例如 HTTP 响应代码(例如 200)以及可能的请求大小。

我尝试过的:

常规模式:

我设法让它部分工作。但是HTTPS请求会因为证书问题而失败(因为模式不透明,需要安装证书)。

透明模式:

我尝试设置透明代理,但配置导致无限循环。 我在 mitmproxy 版本 11 和版本 10 上进行了测试,但遇到了同样的问题。我还提出了有关此问题的问题,但尚未找到解决方案。 https://github.com/mitmproxy/mitmproxy/issues/7369

问题

如何配置 mitmproxy 透明地处理 HTTPS 请求(客户端不需要证书验证)并记录响应详细信息,例如状态代码和请求大小?是否有特定的配置或替代方法来实现这一目标?

在某些网站上,我读到有关将代理保持在“常规”模式,删除主机标头,将其替换为代理的主机,然后在收到响应时恢复原始主机标头。然而,我无法让它发挥作用。您能更详细地解释一下这种方法吗?

ssl curl https mitmproxy transparentproxy
1个回答
0
投票
  • 不需要解密或读取流量。但是,我想要一个请求日志,例如 HTTP 响应代码(例如 200)以及可能的请求大小。

这些要求相互矛盾:由于 HTTP 请求在 TLS 连接内完全加密(HTTP 请求和响应标头和正文),因此必须进行加密才能获取 HTTP 级别的详细信息(例如响应代码)。

© www.soinside.com 2019 - 2024. All rights reserved.