尝试login到受信任(?)dockerregistry时出现x509错误

我已经build立了一个使用港口dockerregistry。

我在/usr/share/local/ca-certificates复制了相应的证书,并成功运行sudo update-ca-certificates 。 (表示新增证书的数量)。

当试图login到特定的registry时:

 ubuntu@master1:/home/vagrant$ docker login my.registry.url Username: pkaramol Password: Error response from daemon: Get https://my.registry.url/v2/: x509: certificate signed by unknown authority 

但是下面的testing成功了:

 openssl s_client -connect my.registry.url:443 -CApath /etc/ssl/certs/ 

…回来了很多详细的输出,证书本身,结束于:

 Verify return code: 0 (ok) 

curl也会成功上面的https链接(当网站不可信时它会失败)。

有什么build议么?

如果你阅读文档

使用自签名证书

警告:与基本身份validation一起使用时,还需要将证书信任到某些版本的Docker的OS cert存储中(请参阅下文),这比不安全的registry解决scheme更安全。

生成您自己的证书:

 $ mkdir -p certs $ openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ -x509 -days 365 -out certs/domain.crt 

请务必将名称myregistrydomain.com用作CN。

使用结果以启用TLS启动您的registry。

指示每个Docker守护程序信任该证书。 做到这一点的方式取决于你的操作系统。

Linux:将每个Docker主机上的domain.crt文件复制到/etc/docker/certs.d/myregistrydomain.com:5000/ca.crt 。 您不需要重新启动Docker。

请参阅下面的链接了解更多详情

https://docs.docker.com/registry/insecure/#use-self-signed-certificates