linux_china技术雷达linux_china技术雷达

mitmproxy

pythonproxy
试用

mitmproxy 是一款开源的中间人代理工具,用于拦截、修改和查看HTTP/HTTPS流量。 它支持终端、图形用户界面和Python API,可以用于调试、测试和安全审计。

在美的内部,由于安全的要求,如果你需要访问外部的服务,需要通过代理进行访问,而mitmproxy可以用于代理和审计这些流量。

mitmproxy

证书信任

如果你有多个mitmproxy实例,请确保$HOME/.mitmproxy/的配置都是相同的,该目录下主要保存了证书和配置文件。

操作系统

参考 https://docs.mitmproxy.org/stable/concepts-certificates/ 添加操作系统证书信任,后续https访问将会自动信任该证书。

使用 curl --proxy http://127.0.0.1:8082 "https://httpbin.org/ip" 进行测试。 curl命令行的环境变量为 http_proxy, https_proxy,均为小写。

JDK

  • JDK 8: $JAVA_HOME/bin/keytool -import -trustcacerts -file $HOME/.mitmproxy/mitmproxy-ca-cert.pem -alias mitmproxycert -keystore $JAVA_HOME/jre/lib/security/cacerts
  • JDK 9+: $JAVA_HOME/bin/keytool -import -trustcacerts -file $HOME/.mitmproxy/mitmproxy-ca-cert.pem -alias mitmproxycert -keystore $JAVA_HOME/lib/security/cacerts

目前可以考虑内部统一JDK,统一进行mitmproxy证书的导入。 对于Buildpacks来说,支持导入自定义证书,详细请参考 https://paketo.io/docs/howto/java/ certificate部分。

Java客户端,请设置环境变量: PROXY_HTTP="http://localhost:8082"PROXY_HTTPS="http://localhost:8082"

References