Docker私有注册表| TLS证书问题

时间:2016-07-12 11:53:10

标签: ssl docker registry private x509certificate

我已尝试按照以下tutorial在AWS Centos计算机上设置我们自己的私有注册表(v2)。

我已自签名TLS证书并将其放在/etc/docker/certs.d/MACHINE_STATIS_IP:5000 /

当尝试登录注册表(docker login MACHINE_IP:5000)或推送标记的存储库(MACHINE_IP:5000 / ubuntu:latest)时,我收到以下错误:

Error response from daemon: Get https://MACHINE_IP:5000/v1/users/: x509: cannot validate certificate for MACHINE_IP because it doesn't contain any IP SANs

试图寻找2天的答案,但我找不到任何答案。 我已将证书CN(通用名称)设置为MACHINE_STATIC_IP:5000

2 个答案:

答案 0 :(得分:2)

使用自签名TLS证书时,docker守护程序要求您将证书添加到其已知证书中。

使用keytool命令获取证书:

keytool -printcert -sslserver ${NEXUS_DOMAIN}:${SSL_PORT} -rfc > ${NEXUS_DOMAIN}.crt

将其复制到客户端的机器SSL证书目录(在我的情况下 - ubuntu):

sudo cp ${NEXUS_DOMAIN}.crt /usr/local/share/ca-certificates/${NEXUS_DOMAIN}.crt && sudo update-ca-certificates

现在重新加载docker守护进程,你很高兴:

sudo systemctl restart docker

答案 1 :(得分:0)

您还可以使用以下命令暂时信任证书,而无需将其添加到系统证书中。

docker --tlscert <the downloaded tls cert> pull <whatever you want to pull>