微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Zscaler 防火墙后面的 Docker 镜像中发出 HTTPS 请求

如何解决在 Zscaler 防火墙后面的 Docker 镜像中发出 HTTPS 请求

我有兴趣在企业 zscaler 防火墙后面运行这样一个简单的图像:

FROM rocker/r-base
RUN apt-get update && apt-get install libssl-dev
CMD Rscript -e "install.packages('beepr')"

使用 docker build -t test . 构建映像失败,错误如下:

Certificate verification Failed: The certificate is NOT trusted. The certificate issuer is unkNown.  Could not handshake: Error in the certificate verification. [IP: ]

我已经尝试了 here 的一些解决方案,但它们不起作用。例如:

FROM rocker/r-base

# Add local certificate to Docker
ADD ./zscaler.cer /usr/local/share/ca-certificates/zscaler.crt

# Move the certificate to the cert dir of openssl and update certificates
RUN CERT_DIR=$(openssl version -d | cut -f2 -d \")/certs ; cp /usr/local/share/ca-certificates/zscaler.crt $CERT_DIR ; update-ca-certificates

# Try making https requests
RUN apt-get update && apt-get install libssl-dev
CMD Rscript -e "install.packages('beepr')"

同样的错误仍然存​​在于 docker build -t test .。我已经在网上阅读了一些可能的解决方案,但所有这些都不断失败,无论是 apt-get 还是使用 R 安装软件包。有没有人遇到过这种情况并找到了解决办法?

解决方法

显然,目前的建议略有错误。证书不应进入 /etc/ssl/certs/(这是 CERT_DIR=$(openssl version -d | cut -f2 -d \")/certs 的结果),而应位于 CERT_DIR=/usr/local/share/ca-certificates/(至少在此 Ubuntu 映像中)。更改后,update-ca-certificates 会正确更新证书,所有 HTTPS 请求均成功。

现在应该可以了:

FROM rocker/r-base

# Add local certificate to Docker
ADD ./zscaler.pem /usr/local/share/ca-certificates/ZscalerRootCertificate-2048-SHA256.crt

# update certificates
RUN update-ca-certificates

# Try making https requests
RUN apt-get update && apt-get install libssl-dev
CMD Rscript -e "install.packages('beepr')"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。