试用
mitmproxy 是一款开源的中间人代理工具,用于拦截、修改和查看HTTP/HTTPS流量。 它支持终端、图形用户界面和Python API,可以用于调试、测试和安全审计。
在美的内部,由于安全的要求,如果你需要访问外部的服务,需要通过代理进行访问,而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
- mitmproxy: https://mitmproxy.org/