容器无法发出网络请求 - x509:由未知颁发机构签名的证书

jar*_*ryd 1 networking docker kubernetes

在 K8s 服务后面运行的容器无法发出网络请求并出现错误x509: certificate signed by unknown authority

容器是一个 API,用于服务传入请求并在响应之前发出外部网络请求,它运行在由 Docker 桌面管理的本地 K8s 集群中。被调用的第三方 API 未通过证书验证,并且我没有使用代理或 VPN。

这可能是什么原因造成的?

jar*_*ryd 6

我希望这对其他人有帮助,因为网上有很多关于这个主题的不同讨论。

修复似乎是,当进行多阶段 docker 构建并使用例如FROM golang:alpine3.14 AS buildFROM scratch,根证书不会复制到映像中。

在该行之后将其添加到 DockerfileFROM scratch可以消除错误。

COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
Run Code Online (Sandbox Code Playgroud)

这是在这个stackoverflow 答案中找到的