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

我在VMware Player中运行VMware Photon OS。 这将被用作主机操作系统来运行Docker容器。

但是,因为我在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,这也没有解决问题。

我已经阅读了很多post,大多数引用了我的系统中不存在的命令update-ca-trust (即使安装了ca-certificates包)。

我不知道如何前进。 AFAIK,有两个选项。 或者:

  • 添加ZScaler证书,以便SSL连接受信任。
  • 允许不安全的连接到Docker中心(但即使如此,它仍然可能会抱怨,因为证书不受信任)。

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

问题在于,zscaler充当在您的组织中进行ssl检查的MAN-IN-THE-MIDDLE(请参阅https://support.zscaler.com/hc/en-us/articles/205059995-How-does-Zscaler-protect -SSL-交通 – )。

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

现在,zscaler背后的证书链如下所示

在这里输入图像说明

我们需要逐一导出它们,并按照https://stackoverflow.com/a/36454369/1443505中的说明进行操作。