首页 > 后端开发 > Golang > 为什么我的 GoLang Docker 容器出现'由未知机构签署的证书”错误?

为什么我的 GoLang Docker 容器出现'由未知机构签署的证书”错误?

Mary-Kate Olsen
发布: 2024-12-01 02:43:10
原创
820 人浏览过

Why Does My GoLang Docker Container Get a

Docker 容器问题:未知机构签署的错误证书

使用 GoLang 的 http.Client 运行 Docker 容器可能会导致错误消息“由未知机构签署的证书。”从头开始创建容器或使用 Ubuntu/Alpine 映像时会遇到此问题。

要理解该问题,需要注意的是 http.Client 使用系统证书存储中的 TLS 配置。从头创建容器时,默认没有任何受信任的证书。

解决方案:

此问题的解决方案取决于 Docker 的类型您正在使用的图像:

Scratch图像:

  1. 在图像中包含受信任的证书。例如,您可以将 ca-certificates.crt 文件添加到 /etc/ssl/certs 目录:
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]
登录后复制

多阶段映像:

  1. 在构建过程中添加 ca-certificates 包stage:
FROM golang:alpine as build
RUN apk --no-cache add ca-certificates
登录后复制
  1. 将证书从构建阶段复制到最终映像:
FROM scratch
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /go/bin/app /app
ENTRYPOINT ["/app"]
登录后复制

通过在 Docker 映像中包含受信任的证书,您的 http.Client 将能够验证服务器证书并成功向 Google 的 API 发出 HTTPS 请求。

以上是为什么我的 GoLang Docker 容器出现'由未知机构签署的证书”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板