Docker版本1.2.0,版本2a2f26c / 1.2.0,
docker registry 0.8.1
我在cenots7上设置了docker私有注册表并创建了我的自定义ssl证书。当我尝试使用https访问我的docker注册表时,我得到x509: certificate signed by unknown authority
。我找到了一个解决方案,将cert文件放在"/etc/pki/tls/certs"
下,然后执行
"update-ca-trust"
"service docker restart"
现在它开始读取我的证书。我可以登录并拉动并推送到docker私人注册表
"https://localdockerregistry"
。
现在当我尝试从在线码头工具注册表(https://index.docker.io/v1/search?q=centos)中读取
时 "docker search centos"
我得到了
"Error response from daemon: Get https://index.docker.io/v1/search?q=centos: x509: certificate signed by unknown authority"
我从firefox浏览器导出了docker.io证书并将其放在“/ etc / pki / tls / certs”下,然后执行"update-ca-trust"
和"service docker restart"
但是同样的错误。看起来Docker客户端无法确定哪个证书用于哪个存储库。
在使用您自己的docker私有注册表时,我们如何修复“x509:由未知权限签署的证书”在线docker注册表的任何想法。
答案 0 :(得分:3)
放置证书的正确位置是在此位置运行docker守护程序(而非客户端)的计算机上:/etc/docker/certs.d/my.registry.com:5000/ca.crt
其中 my.registry.com:5000 是地址您的私有注册表和:5000
是您的注册表可以访问的端口。如果路径/etc/docker/certs.d/
不存在,则应该创建它 - 这是Docker守护程序默认显示的位置。
这样,您可以为每个私有注册表创建一个私有证书,而不会影响公共注册表。
上的文档答案 1 :(得分:0)
我在使用StartSSL证书的Nginx代理后面的容器中运行的docker注册表遇到了问题。
在这种情况下,您必须将中间ca证书附加到nginx ssl证书,请参阅https://stackoverflow.com/a/25006442/1130611