由于 ZScaler 和证书问题,无法使用 docker
Unable to use docker due to ZScaler and certificate issues
我在 VMware Player 中安装了 VMware Photon OS 运行ning。这将用作主机 OS 到 运行 Docker 容器。
但是,由于我使用的是 ZScaler,因此我遇到了访问外部资源的 运行ning 命令的问题。例如。 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 在您的组织中充当中间人进行 ssl 检查(参见 https://support.zscaler.com/hc/en-us/articles/205059995-How-does-Zscaler-protect-SSL-traffic-)。
既然您已经尝试将证书放入 docker,我想您已经熟悉了 中描述的步骤。对于 zscaler 场景,这里的答案几乎是正确的。需要注意的一点是,因为 zscaler 拦截了 CA 树。我们需要在链上添加所有证书。
目前,zscaler 背后的证书链如下所示
我们需要将它们一一导出,并按照 中的说明对每个导出。
我在 VMware Player 中安装了 VMware Photon OS 运行ning。这将用作主机 OS 到 运行 Docker 容器。
但是,由于我使用的是 ZScaler,因此我遇到了访问外部资源的 运行ning 命令的问题。例如。 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 在您的组织中充当中间人进行 ssl 检查(参见 https://support.zscaler.com/hc/en-us/articles/205059995-How-does-Zscaler-protect-SSL-traffic-)。
既然您已经尝试将证书放入 docker,我想您已经熟悉了
目前,zscaler 背后的证书链如下所示
我们需要将它们一一导出,并按照