在哪里为Docker for Mac添加客户端证书?

时间:2016-11-26 20:40:58

标签: macos docker ssl tls1.2

我有一个docker注册表,我在nginx代理后面访问,使用客户端ssl证书进行身份验证。

当我尝试推送到此注册表时,我需要docker守护程序将客户端证书发送到nginx。

根据: https://docs.docker.com/engine/security/certificates/

应该有一个名为/ etc / docker的目录,其中可以使用这些证书。这个目录在Docker for Mac上不存在。

所以我想我会尝试将证书放在虚拟机本身中:

docker-machine ssh default

导致码头工抱怨: 来自守护程序的错误响应:crypto / tls:私钥与公钥

不匹配

我不相信我的密钥对有任何问题,而且我已经在linux上完成了相同的设置(更容易)而没有任何问题。

2 个答案:

答案 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 以便
    更改生效。
  • 注册表不能列为不安全的注册表(请参阅 Docker Daemon)。 Docker for Mac 将忽略
    下列出的证书 不安全的注册表,并且不会发送客户端证书。命令
    像 docker run 那样尝试从注册表中拉取会产生
    命令行和注册表上的错误消息。