8

我在 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

我试图PEM从我的 Windows 工作站中提取 ZScaler 的 CA 根证书(格式),并将它们附加到/etc/pki/tls/certs/ca-bundle.crt. 但即使在重新启动 Docker 之后,这也没有解决问题。

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

我不知道如何前进。AFAIK,有两种选择。任何一个:

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

后者顺便说一句,例如curl使用-k选项执行允许我访问任何 https 资源。

4

1 回答 1

8

问题是 zscaler 充当 MAN-IN-THE-MIDDLE 在您的组织中进行 ssl 检查(请参阅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中的说明进行操作。

于 2017-05-17T03:17:32.473 回答