gpt4 book ai didi

ssl - Docker 注册表登录失败并显示 "Certificate signed by unknown authority"

转载 作者:IT老高 更新时间:2023-10-28 12:39:28 27 4
gpt4 key购买 nike

我正在 ubuntu 上运行一个私有(private) docker 注册表,使用 S3 进行存储。我在让 docker login/push/pull 命令通过 SSL 工作时遇到问题。我在 Gunicorn 前面使用 Nginx 来运行注册表。它通过 HTTP 没有任何问题,但是在为 prod 系统切换到 HTTPS 后,它会从客户端 docker login 引发以下错误。

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。您现在应该可以开始了。

关于ssl - Docker 注册表登录失败并显示 "Certificate signed by unknown authority",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com