HTTPS プロキシと HTTPS パッケージソースを使う場合、Cargo は異なる CA バンドルで二つの TLS 接続を検証できます。

[http]
proxy = "https://proxy.example:8443"
proxy-cainfo = "/path/to/proxy-ca.pem"
cainfo = "/path/to/origin-ca.pem"

エンドポイントとパスを承認済みの値に置き換えてください。このプロキシには意図的に TLS リスナーを設けています。通常のHTTP プロキシは、パッケージソースが HTTPS を使うからといって HTTPS プロキシになるわけではありません。

失敗する段階確認する信頼設定
宛先へのトンネルができる前のプロキシ TLShttp.proxy-cainfo。個別に設定していなければ http.cainfo にフォールバックします。
トンネル確立後の宛先証明書宛先の信頼パスに使う http.cainfo。

対応する変数は CARGO_HTTP_PROXY_CAINFO と CARGO_HTTP_CAINFO です。適切な承認済み認証局を使用してください。無作為な証明書を両方のファイルにコピーしても、どちらの接続に問題があるかは分かりません。

CONNECT を運ぶ平文 HTTP プロキシには、検証対象となるプロキシリスナーの TLS 証明書がありません。その場合の宛先エラーは、プロキシ CA ファイルをでっち上げても直りません。設定したパスが実際のコンテナや CI ジョブ内に存在することも確認し、環境を比較する際は OS と TLS バックエンドの動作を考慮します。

検証は有効のままにします。転送が単に進むだけの状態と、意図したサービスへの接続を区別するための身元確認を提供します。

関連記事