linux-由于ZScaler和证书问题,无法使用docker

我在VMware Player中运行VMware Photon OS.这将用作运行Docker容器的主机OS.

但是,由于我落后于ZScaler,因此在运行访问外部资源的命令时遇到了问题.例如. docker pull python给了我以下输出(我添加了一些换行符以使其更具可读性):

error pulling image configuration: 
Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/a0/a0d32d529a0a6728f808050fd2baf9c12e24c852e5b0967ad245c006c3eea2ed/data
?Expires=1493287220
&Signature=gQ60zfNavWYavBzKK12qbqwfOH2ReXMVbWlS39oKNg0xQi-DZM68zPi22xfDl-8W56tQmz5WL5j8L39tjWkLJRNmKHwvwjsxaSNOkPMYQmhppIRD0OuVwfwHr-
1jvnk6mDZM7fCrChLCrF8Ds-2j-dq1XqhiNe5Sn8DYjFTpVWM_
&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: 
x509: certificate signed by unknown authority

我试图从Windows工作站中提取ZScaler的CA根证书(PEM格式),并将其附加到/etc/pki/tls/certs/ca-bundle.crt.但是即使重新启动Docker,也无法解决问题.

我已经阅读了许多帖子,其中大多数引用的命令update-ca-trust在我的系统上不存在(即使安装了ca-certificates软件包).

我不知道如何前进. AFAIK,有两个选项.要么:

>添加ZScaler证书,以便信任SSL连接.
>允许与Docker集线器的不安全连接(但是即使那样,由于证书不受信任,它仍可能会抱怨).

后者的工作方式例如使用-k选项执行curl允许我访问任何https资源.

解决方法:

问题是zscaler充当着MAN-IN-THE-MIDDLE的角色,在您的组织中执行ssl检查(请参阅https://support.zscaler.com/hc/en-us/articles/205059995-How-does-Zscaler-protect-SSL-traffic-).

由于您尝试过将证书放入docker中,因此我想您已经熟悉https://*.com/a/36454369/1443505中描述的步骤.对于zscaler场景,答案几乎是正确的.需要注意的一件事是,因为zscaler截取了CA树.我们需要在链上添加所有证书.

目前,zscaler背后的证书链如下所示

linux-由于ZScaler和证书问题,无法使用docker

我们需要将它们全部导出,并按照https://*.com/a/36454369/1443505中的说明进行操作.

上一篇:java-如何以编程方式知道应用程序是否已使用调试或导出证书签名?


下一篇:java-如何向Jenkins内部JDK添加自定义证书?