我目前正在实施私有 Docker Registry 服务器,nginx
配置为https
安全地将流量转发到正在运行的 Docker Registry(即docker-compose
)实例在专用网络上(配置了 DNS、DHCP)。
我已经完成了所有设置,但必须创建自签名证书因为我不被允许使用“让我们加密”(硬性要求)。我已将文件部署.crt
到/usr/local/share/ca-certificates
我网络上的所有 Ubuntu 主机上,并更新了证书存储(即通过sudo update-ca-certificates -f
)。
但是,即使证书是“受信任的”(根据上面的步骤),该证书仍然注册为“自签名”,并且让 Docker Registry 完全运行的唯一方法是创建一个文件,,/etc/docker/daemon.json
内容如下(假设我的 Docker Registry 实例正在registry
我的域上的主机上运行lan
):
{
"insecure-registries" : [ "registry.lan:5000" ]
}
这会导致某些功能中断(即,如果启用“不安全的注册表”,某些插件将无法工作)。
问题
我如何配置我的私人网络(即假设它大多数时候甚至没有连接到互联网),以便网络上的所有机器都“完全信任”该证书(即该证书在本地网络上的主机之间“公开信任”)?即我可以运行什么命令或可以调整什么配置文件?
这似乎是一个可能的解决方案:在我的私人网络上创建一个 CA plus 服务器密钥。
谢谢。
答案1
使用您信任的证书颁发机构来签署 x509 证书。
将生成的证书及其密钥放在终止 TLS 的 Web 服务器上。
使用 CA 签名证书并不意味着使用 Let's Encrypt;反之亦然。可以使用其他 PKI,由您的组织运行(这是一个需要认真完成的项目),也可以不运行。