使用不带域名

时间:2016-12-02 00:53:32

标签: docker https certificate docker-registry self-signed

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

假设我家的IP地址为10.10.10.10,并且docker repo正在端口5000上运行。

我按照here步骤操作,但我网站上的docker抱怨它无法连接到我的homeserver上的docker repo,因为它没有在SAN扩展中指定IP。

好。所以我创建了一个没有CN字段的新证书,只在SAN中创建了一个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/...,它会接受自签名证书。有人在这里有任何建议吗?

2 个答案:

答案 0 :(得分:0)

您无法使用自签名证书,它必须是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应该忽略任何证书问题。

答案 1 :(得分:0)

我只是按照此说明create private repo with password without domain and ssl做了同样的事情。这将需要您在客户端和主机文件的域上添加证书(如果您希望自己拥有一个域而不注册新域)