別のドメインのアップストリーム プロキシと連携するように mitmproxy を構成しようとしています。
より明確に言うと、独自のドメイン (mydomain.com など) を持つプラットフォームがあり、interne にアクセスするには、独自のドメイン (company.com など) でも会社のプロキシを経由する必要があります。
mitmproxy の証明書を生成し、証明書の生成に使用される CA とキーを持っています。それらの名前を mitmproxy-ca.pem (キー + ca) および mitmproxy-ca-cert.pem (証明書) に変更し、それらを .mitmproxy フォルダーに入れます。完全にテストできなくても、うまくいくようです。
しかし、上流のプロキシ ssl 構成では、会社の CA を .mitmproxy フォルダーに入れ、名前を付けます (mycompany-ca.pem)。ssl_verify_upstream_trusted_ca: "/home/mitmproxy/.mitmproxy/mycompany-ca.pem" で config.yaml ファイルを構成しました。
しかし、mitproxy を使用してhttps://www.google.comをカールしようとすると、次のエラーが発生します。
W.X.Y.Z:57370: client connect
W.X.Y.Z:57370: server connect proxy.mycompany.com (A.B.C.D:8080)
W.X.Y.Z:57370: Server TLS handshake failed. Certificate verify failed: unable to get local issuer certificate
W.X.Y.Z:57370: GET https://www.google.com/ HTTP/2.0
<< Certificate verify failed: unable to get local issuer certificate
W.X.Y.Z:57370: server disconnect proxy.mycompany.com (A.B.C.D:8080)
W.X.Y.Z:57370: client disconnect
ブラウザに会社のプロキシを使用すると、証明書の件名は google ですが、発行者は会社のプロキシ情報であることがわかります。
さらに、会社のプロキシ CA はキーのない証明書のみであり (通常のようです)、docker の mitmproxy を使用しています。もちろん、 --ssl_insecure オプションを使用すると機能しますが、上流のプロキシ証明書の検証をバイパスしたくありません (許可されていません)。
アップストリームの SSL 証明書制御を構成する方法を教えてください。