gpt4 book ai didi

ssl - 使用 Letsencrypt 证书设置 Docker 注册表

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:03 25 4
gpt4 key购买 nike

我正在按照此处所述设置域注册表:

https://docs.docker.com/registry/deploying/

我为 docker.mydomain.com 生成了一个证书,并在我的服务器上使用他们的命令启动了 docker:

docker run -d -p 5000:5000 --restart=always --name registry \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2

我已经启动了 docker 并指向我使用 letsencrypt ( https://letsencrypt.org/ ) 获得的证书。

现在,当我浏览到 https://docker.mydomain.com:5000/v2/我会得到一个只有“{}”的页面,带有绿色锁(成功的安全页面请求)。

但是当我尝试从不同的服务器执行 docker login docker.mydomain.com:5000 时,我在注册表 docker 中看到错误:

 TLS handshake error from xxx.xxx.xxx.xxx:51773: remote error: bad certificate

我在设置证书时尝试了一些不同的变体,但遇到了如下错误:

remote error: unknown certificate authority

 tls: first record does not look like a TLS handshake

我错过了什么?

最佳答案

Docker 接缝不支持 SNI : https://github.com/docker/docker/issues/9969

更新:Docker 现在应该支持 SNI。

这意味着,在tls事务期间连接到你的服务器时,docker客户端没有指定域名,所以你的服务器显示默认证书。

解决方案可能是将服务器的默认证书更改为对 docker 域有效的证书。

本网站仅适用于支持 SNI 的浏览器。

要检查您的(子)域是否适用于不支持 SNI 的客户端,您可以使用 ssllabs.com/ssltest:如果您没有看到消息“此站点仅适用于支持 SNI 的浏览器。”那么它将工作。

关于ssl - 使用 Letsencrypt 证书设置 Docker 注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34695238/

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