我有一个docker注册表,我在nginx代理后面访问,使用客户端ssl证书进行身份验证。
当我尝试推送到此注册表时,我需要docker守护程序将客户端证书发送到nginx。
根据: https://docs.docker.com/engine/security/certificates/
应该有一个名为/ etc / docker的目录,其中可以使用这些证书。这个目录在Docker for Mac上不存在。
所以我想我会尝试将证书放在虚拟机本身中:
docker-machine ssh default
导致码头工抱怨: 来自守护程序的错误响应:crypto / tls:私钥与公钥
不匹配我不相信我的密钥对有任何问题,而且我已经在linux上完成了相同的设置(更容易)而没有任何问题。
答案 0 :(得分:0)
可以这样安装自签名TLS CA,您的证书可能位于同一目录中。
sudo mkdir -p /Applications/Docker.app/Contents/Resources/etc/ssl/certs
sudo cp my_ca.pem /Applications/Docker.app/Contents/Resources/etc/ssl/certs/ca-certificates.crt
答案 1 :(得分:0)
4 年后,Google 仍然把我带到这里。
我在官方文档中找到了答案: http://docs.docker.oeynet.com/docker-for-mac/#adding-tls-certificates
引自来源:
<块引用>您可以将您的客户证书放入
~/.docker/certs.d/<MyRegistry>:<Port>/client.cert
和
~/.docker/certs.d/<MyRegistry>:<Port>/client.key
。
当 Docker for Mac 应用程序启动时,它会复制
~/.docker/certs.d
文件夹到您 Mac 上的 /etc/docker/certs.d
Moby(Mac 版 Docker xhyve
虚拟机)上的目录。
~/.docker/certs.d
目录进行任何更改后,您需要重新启动 Docker for Mac 以便