对于 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 作业内部,并在比较不同环境时考虑操作系统和 TLS 后端的行为。

保持验证开启。它提供身份检查,以区分连接到预期服务与传输只是能够继续这两种情况。

相关文章