使受信任的自签名证书不在私有网络上注册为“自签名”(即受信任)

时间:2019-05-15 17:39:09

标签: linux docker ssl nginx docker-compose

我目前正在专用网络(已配置DNS,DHCP)上实现private Docker Registry server with nginx configured to forward https traffic securely to the running Docker Registry (i.e. docker-compose) instance

我的整个安装工作​​都按预期进行,但是必须create self-signed certificates,因为我不允许使用"Let's Encrypt"(硬性要求)。我已将.crt文件部署到网络上所有Ubuntu主机上的/usr/local/share/ca-certificates,并更新了证书存储(即通过sudo update-ca-certificates -f)。

但是,即使证书是“受信任的”(从上述步骤开始),证书仍被注册为“自签名”,并且the only way I can get Docker Registry working fully is by creating a file/etc/docker/daemon.json具有以下内容(假设我的Docker Registry实例正在我的registry域的lan主机上运行):

{
  "insecure-registries" : [ "registry.lan:5000" ]
}

这会导致某些功能中断(即,如果启用了“不安全的注册表”,则有些插件将无法工作)。


问题

如何配置我的专用网络(即,假设大部分时间它甚至都没有连接到Internet),以便网络上的所有计算机“完全信任”证书(即,证书是“公共信任的”)在本地网络上的主机中)? 即我可以运行什么命令或可以调整配置文件?

This seems like a possible solution: create a CA plus server key on my private network.

谢谢。

1 个答案:

答案 0 :(得分:0)

从注册表文档中:

  

Linux :在每个Docker上将domain.crt文件复制到/etc/docker/certs.d/myregistrydomain.com:5000/ca.crt   主办。您无需重启Docker。

因此,您需要将证书放在正确的位置。

来源:https://docs.docker.com/registry/insecure/#use-self-signed-certificates