Docker注册表登录失败,并显示“由未知权限签名的证书”

问题描述 投票:19回答:3

我正在使用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。另外,在浏览器中访问注册表时,可以正确识别证书。任何帮助我指向正确方向的人都将不胜感激!

ssl nginx docker
3个回答
15
投票

对于COMODO或StartSSL等廉价/鲜为人知的证书,您需要将整个证书链添加到与nginx一起使用的证书文件中。许多操作系统不信任中间CA,只信任根CA,因此您需要填写主机证书和操作系统信任的根CA之间的缺失步骤。

在您收到证书的电子邮件中,您还应找到中间CA和根CA的链接。打开docker-registry.crt文件,滚动到底部,然后附加中间CA,最后附加PositiveSSL链的根CA证书。完成后,重新启动nginx。你现在应该好好去。


3
投票

对于RHEL主机,您可以将CA证书添加到客户端主机上的PKI CA列表中:

cp docker-registry.crt /etc/pki/ca-trust/source/anchors/docker-registry.crt
update-ca-trust
systemctl restart docker

来自https://www.happyassassin.net/2014/09/06/adding-your-freeipa-servers-ca-certificate-to-the-system-wide-trust-store-on-fedora-and-rhel/


1
投票

如果你在Mac上,只需将注册表添加到insecure-registries中的~/.docker/daemon.json设置:

{ "debug" : true, "experimental" : true, "registry-mirrors" : [], "insecure-registries" : ["registry.your.domain.de"] }

如果你在某处犯了错误(我在JSON中忘了一个逗号),可能会出现启动docker守护进程后的一些问题。即任何码头命令投掷Error response from daemon: Bad response from Docker engine。稍后重启并重置以解决自身问题。

© www.soinside.com 2019 - 2024. All rights reserved.