Cargo でプロキシとパッケージサーバーに使う CA バンドル
Cargo の cainfo と proxy-cainfo を正しい TLS 接続に適用し、プロキシの証明書エラーをすべて同じ信頼問題として扱わないようにします。
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 プロキシになるわけではありません。
| 失敗する段階 | 確認する信頼設定 |
|---|---|
| 宛先へのトンネルができる前のプロキシ TLS | http.proxy-cainfo。個別に設定していなければ http.cainfo にフォールバックします。 |
| トンネル確立後の宛先証明書 | 宛先の信頼パスに使う http.cainfo。 |
対応する変数は CARGO_HTTP_PROXY_CAINFO と CARGO_HTTP_CAINFO です。適切な承認済み認証局を使用してください。無作為な証明書を両方のファイルにコピーしても、どちらの接続に問題があるかは分かりません。
CONNECT を運ぶ平文 HTTP プロキシには、検証対象となるプロキシリスナーの TLS 証明書がありません。その場合の宛先エラーは、プロキシ CA ファイルをでっち上げても直りません。設定したパスが実際のコンテナや CI ジョブ内に存在することも確認し、環境を比較する際は OS と TLS バックエンドの動作を考慮します。
検証は有効のままにします。転送が単に進むだけの状態と、意図したサービスへの接続を区別するための身元確認を提供します。