一尘不染

代理背后的Docker更改了SSL证书

linux

我正在尝试运行以下docker命令:

docker run -i -t ubuntu /bin/bash

但是我得到了错误:

Unable to find image 'ubuntu' (tag: latest) locally

Pulling repository ubuntu
2013/11/28 14:00:24 Get https://index.docker.io/v1/images/ubuntu/ancestry: x509: certificate signed by unknown authority

我知道我们公司会为https请求即时替换SSL证书。

我尝试通过以下方式来信任我们公司的CA证书:

 /etc/pki/tls/certs/ca-bundle.crt

/etc/pki/tls/cert.pem

但是它仍然无法正常工作。

有任何想法吗?


阅读 204

收藏
2020-06-07

共1个答案

一尘不染

要将docker配置为与代理系统一起使用,您首先需要将HTTPS_PROXY / HTTP_PROXY环境变量添加到docker
sysconfig文件中。但是,取决于您使用的是init.d还是服务工具,您需要添加“
export”语句。作为一种解决方法,您可以在docker的sysconfig文件中简单地添加两个变体:

/etc/sysconfig/docker

HTTPS_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
HTTP_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
export HTTP_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
export HTTPS_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"

为了让docker使用ssl拦截代理,您必须将代理根证书添加到系统信任库中。

对于CentOS,将文件复制到/ etc / pki / ca-trust / source / anchors
/并更新ca信任库。之后重新启动docker服务。如果您的代理使用NTLM身份验证-必须使用诸如cntlm之类的中间代理。
这篇博客文章详细解释了它

2020-06-07