首页 >后端开发 >Golang >为什么 Docker Go 镜像中的 `go get` 会失败并显示'x509:由未知机构签名的证书”?

为什么 Docker Go 镜像中的 `go get` 会失败并显示'x509:由未知机构签名的证书”?

DDD
DDD原创
2024-11-30 15:56:15181浏览

Why Does `go get` Fail in a Docker Go Image with

Docker go 镜像:由于“x509:证书由未知机构签名”而导致“go get”失败

尝试安装软件包时在 Docker Go 镜像中使用“go install”时,用户可能会遇到错误“x509:由未知颁发机构签名的证书”。出现此问题的原因是 Docker 映像缺少必要的 CA 证书来验证签署请求的证书颁发机构的可信度。

故障排除:

一个常见的罪魁祸首是使用Cisco AnyConnect“Umbrella”等安全客户端。这些客户端通常充当中间人,使用自己的证书重新签名请求。要解决此问题,映像必须有权访问“Cisco Umbrella Root CA”证书。

解决方案:

  1. 从 Cisco Umbrella 下载证书根 CA 网站: https://www.cisco.com/security/pki/certs/ciscoumbrellaroot.cer
  2. 使用 openssl 将 .cer 证书转换为 .crt 格式:

    openssl x509 -inform DER -in ciscoumbrellaroot.cer -out ciscoumbrellaroot.crt
  3. 将.crt证书复制到证书中文件夹:

    cp ciscoumbrellaroot.crt /usr/local/share/ca-certificates/ciscoumbrellaroot.crt
  4. 更新证书:

    update-ca-certificates

通过执行以下步骤,Docker 映像将获得对必要证书的访问权限,允许使用“go get”成功安装软件包。

以上是为什么 Docker Go 镜像中的 `go get` 会失败并显示'x509:由未知机构签名的证书”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn