[英]docker login self hosted registry = x509: certificate signed by unknown authority
[英]Docker registry login fails with “Certificate signed by unknown authority”
我正在使用S3存储在ubuntu上运行私有docker注册表。 我遇到问题,让docker login / push / pull命令通过SSL工作。 我在Gunicorn面前使用Nginx来运行注册表。 它在HTTP上没有任何问题,但在为prod系统切换到HTTPS后,它会从客户端docker登录中抛出以下错误。
Invalid Registry endpoint: x509: certificate signed by unknown authority
我从Commodo购买了一个相当便宜的PositiveSSL证书用于此。 我确保在运行注册表的Ubuntu系统上安装了根CA和中间CA. 以下是我的服务器的nginx配置
# Default nginx site to run the docker registry upstream docker-registry { server localhost:5000; } server { listen 443; server_name docker.ommited.net; ssl on; ssl_certificate /etc/ssl/docker-registry.crt; ssl_certificate_key /etc/ssl/docker-registry.key; proxy_set_header Host $http_host; # required for docker client's sake proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads location / { proxy_pass http://localhost:5000/; } }
我试图弄清楚如何让docker正确识别证书,或忽略证书警告。 我正在运行docker-registry版本v0.7.3,我正在使用的特定客户端是Docker版本1.1.2,构建d84a070。 另外,在浏览器中访问注册表时,可以正确识别证书。 任何帮助我指向正确方向的人都将不胜感激!
对于COMODO或StartSSL等廉价/鲜为人知的证书,您需要将整个证书链添加到与nginx一起使用的证书文件中。 许多操作系统不信任中间CA,只信任根CA,因此您需要填写主机证书和操作系统信任的根CA之间的缺失步骤。
在您收到证书的电子邮件中,您还应找到中间CA和根CA的链接。 打开docker-registry.crt
文件,滚动到底部,然后附加中间CA,最后附加PositiveSSL链的根CA证书。 完成后,重新启动nginx。 你现在应该好好去。
对于RHEL主机,您可以将CA证书添加到客户端主机上的PKI CA列表中:
cp docker-registry.crt /etc/pki/ca-trust/source/anchors/docker-registry.crt
update-ca-trust
systemctl restart docker
如果你在mac上,只需将注册表添加到~/.docker/daemon.json
的insecure-registries
设置:
{
"debug" : true,
"experimental" : true,
"registry-mirrors" : [],
"insecure-registries" : ["registry.your.domain.de"]
}
如果你在某处犯了错误(我在JSON中忘了一个逗号),可能会出现启动docker守护进程后的一些问题。 即任何docker命令Error response from daemon: Bad response from Docker engine
抛出Error response from daemon: Bad response from Docker engine
的Error response from daemon: Bad response from Docker engine
。 稍后重启并重置以解决自身问题。
如果您使用的是letsencrypt和nginx,只需将ssl_certificate
密钥从cert.pem
更改为ssl_certificate
fullchain.pem
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.