登录到专用docker注册表时出现缺少客户端证书错误



我正试图使用适用于Mac的docker社区版本18.06登录到一个专用docker注册表,但我在从cli-登录docker时遇到了这个错误

后台进程的错误响应:缺少的客户端证书domain.cert密钥域.key

首先,我使用以下命令在~/.doker/certs.d/myprivaterepo:端口中安装了CA证书:

$openssl genrsa-out client.key 4096
$openssl-req-new-x509-text-key client.key-out client.cert

它给了我错误-

后台进程的错误响应:Gethttps://myprivaterepo:port/v2/:服务不可用

然后我用上面的命令生成了".crt"格式的证书,它开始给我这个错误:

后台进程的错误响应:缺少的客户端证书client.cert密钥客户端密钥

我假设它需要一个密钥以及.crt和.cert证书。我实际上尝试用另一个密钥创建另一个.cert证书,但它给了我以下错误:

后台进程的错误响应:tls:私钥与公钥不匹配

我参考了docker文档-https://docs.docker.com/engine/security/https/,但无法解决问题。

你能告诉我如何生成这两个证书的组合吗。提前感谢!

对我来说,重命名crt文件并将其放入/usr/local/share/ca-certificates/worked:

# copy and rename the file
cp client.crt /usr/local/share/ca-certificates/<my-private-repo>:<port>.crt
# update certificates
sudo ca-update-certificates
# restart docker daemon
sudo service docker restart

最新更新