Bub*_*dow 8 macos ssl docker tls1.2
我有一个 docker 注册表,我正在 nginx 代理后面访问该注册表,该代理使用客户端 ssl 证书进行身份验证。
当我尝试推送到此注册表时,我需要 docker 守护进程将客户端证书发送到 nginx。
根据: https: //docs.docker.com/engine/security/certificates/
应该有一个名为 /etc/docker 的目录,这些证书可以存放在其中。Docker for Mac 上不存在此目录。
所以我想我应该尝试将证书放入虚拟机本身中,方法是:
docker-machine ssh 默认
这导致 docker 抱怨:来自守护程序的错误响应:crypto/tls:私钥与公钥不匹配
我不相信我的密钥对有什么问题,而且我已经在 Linux 上完成了相同的设置(更容易),没有任何问题。
四年后,谷歌仍然把我带到了这里。
我在官方文档中找到了答案: https://docs.docker.com/desktop/mac/#add-client-certificates
引用来源:
您可以将客户端证书放入
~/.docker/certs.d/<MyRegistry>:<Port>/client.cert和 中~/.docker/certs.d/<MyRegistry>:<Port>/client.key。当 Docker for Mac 应用程序启动时,它会将
~/.docker/certs.dMac 上的文件夹复制到/etc/docker/certs.dMoby(Docker for Macxhyve虚拟机)上的目录。
- 对钥匙串或目录进行任何更改后,您需要重新启动 Docker for Mac
~/.docker/certs.d才能使
更改生效。- 注册表不能被列为不安全注册表(请参阅Docker Engine)。Docker for Mac 将忽略不安全注册表下列出的证书
,并且不会发送客户端证书。
尝试从注册表中拉取的命令(例如 docker run)将
在命令行以及注册表上生成错误消息。
自签名 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13934 次 |
| 最近记录: |