Docker私人registry:x509:由未知权威机构签名的证书

我正在尝试设置一个私人dockerregistry,由一个反向nginx代理,通过客户端证书validation用户的安全。

我得到的错误是:

x509:由未知权威签署的证书

根据文档,你应该能够将证书添加到/etc/docker/certs.d/,我已经这样做了。 Docker似乎看到了证书的位置:

EBU调用POST /v1.24/images/create?fromImage=docker.squadwars.org%2Froster&tag=latest DEBU hostDir:/etc/docker/certs.d/docker.squadwars.org DEBU [0015] cert:/etc/docker/certs.d/docker.squadwars.org/client.cert DEBU密钥:/etc/docker/certs.d/docker.squadwars.org/client.key DEBU crt: /etc/docker/certs.d/docker.squadwars.org/docker.squadwars.org.crt DEBU hostDir:/etc/docker/certs.d/docker.squadwars.org DEBU cert:/ etc /docker/certs.d/docker.squadwars.org/client.cert DEBU密钥:/etc/docker/certs.d/docker.squadwars.org/client.key DEBU crt:/ etc / docker /certs.d/docker.squadwars.org/docker.squadwars.org.crt DEBU试图从https://docker.squadwars.org v2中拖出docker.squadwars.org/roster WARN获取v2时出错registry:获取https://docker.squadwars.org/v2/:x509 :由未知权威机构ERRO签名的证书ERRO在出错后尝试下一个端点以进行拉取:获取https://docker.squadwars.org/v2/:x509 :由unkn签名的证书 自己的权力

我也尝试将mydomain.org中的cert文件重命名为“ca.crt”,debugging日志再次显示它看到,但没有任何效果。

我可以像这样使用curl:

curl --key client.key --cert client.cert https://docker.squadwars.org/

我也可以添加–cacert选项来curl,无论哪种方式的作品。

docker文档说如果你仍然有问题,你应该在操作系统级别添加证书。 我已经按照指示这样做了:

(这可能是为什么我不需要-cacert curl,虽然我很困惑,因为我已经删除了证书,但curl仍然有效)

这是驱使我坚果,任何帮助将不胜感激!

编辑:我忘了补充说,最初我有错误的证书的FQDN,但现在是“docker.squadwars.org”

我通过首先创build自己的证书颁发机构来完成工作,如下所示:

如何使用openssl创build自签名证书?

和这里:

您如何与您的authentication机构签署证书签名请求?

我希望能够给出更好的答案,但我在这里按照说明:

https://arcweb.co/securing-websites-nginx-and-client-side-certificate-authentication-linux/

而这不适合我。 除了有关签署客户端密钥的部分。 这工作。