使用不带域名的 https 配置 docker 仓库

Configure docker repo with https without domain name

我有一个网站 运行 在数字海洋水滴上,我想通过 docker 和一个 Teamcity 构建服务器持续部署 运行我的家庭服务器。我想在我的 docker 存储库上启用 https,使用自签名证书,但没有域名。

假设我家的 IP 地址是 10.10.10.10 并且 docker 存储库是 运行 在端口 5000.

我按照步骤 here,但是我网站上的 docker 抱怨它无法连接到我的家庭服务器上的 docker 存储库,因为它没有在SAN 扩展。

好的。所以我在 SAN 中创建了一个没有 CN 字段且只有一个 IP 的新证书,现在我网站上的证书配置看起来像...

/etc/docker/certs.d/10.10.10.10:5000/ca.crt

我还将证书添加到我的通用证书中(Ubuntu 16.04 btw)

然后我尝试将图像从我的家庭服务器拉到我的网站...

docker pull 10.10.10.10:5000/personal_site:latest

但是,我遇到了这个错误。

Error response from daemon: Get https://10.10.10.10:5000/v1/_ping: x509:
certificate signed by unknown authority (possibly because of "x509: 
invalid signature: parent certificate cannot sign this kind of 
certificate" while trying to verify candidate authority certificate "serial:xxx")

我想通过将我的证书添加到 /etc/docker/... 它会接受自签名证书。有人在这里有什么建议吗?

您不能为此使用自签名证书,它需要是 CA 证书。按照 same steps required to create a certificate for a docker host 并将您的 CA 存储在 /etc/docker/certs.d/... 中。或者您也可以将 10.10.10.10 定义为不安全注册表,作为 docker 守护进程启动 (dockerd --insecure-registry 10.10.10.10:5000 ...) 的一部分,并且 docker 应该忽略任何证书问题。

我只是用这个指令做了同样的事情create private repo with password without domain and ssl。这将要求您在客户端上添加证书并在主机文件上添加域(如果您喜欢自己拥有一个域而不注册新域)