首页 > 解决方案 > Docker TLS - 如何在本地机器上创建密钥

问题描述

前置知识:

所以我开始自己使用 docker 并将其安装在我的服务器上并启用了 TLS。我遵循了本教程:https ://docs.docker.com/engine/security/https/

本教程最终将为您提供 6 个文件:

  1. -r-------- ca-key.pem
  2. -r--r--r-- ca.pem
  3. -r--r--r-- cert.pem
  4. -r-------- key.pem
  5. -r--r--r--服务器证书.pem
  6. -r--------服务器密钥.pem

这些文件的所有者是root。我复制了ca.pemcert.pemkey.pem,我用它们从我的本地搬运工实例连接。(实际上我只使用cert.pemkey.pem因为我只有客户端验证)

码头主机:

{
  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://0.0.0.0:2376"
  ],
  "storage-driver": "overlay2",
  "tls": true,
  "tlscacert": "/etc/docker/certs/ca.pem",
  "tlscert": "/etc/docker/certs/server-cert.pem",
  "tlskey": "/etc/docker/certs/server-key.pem",
  "tlsverify": true
}

我的问题:

我工作的公司为我安装了 docker 并启用了 TLS,将所有pem文件放在我可以访问的目录中...问题是,我无法下载key.pem,因为所有者是 root,我无法访问给它。

我可以下载下一个文件:

  1. 卡佩姆
  2. 证书.pem
  3. 服务器-cert.pem

对我来说是可能的;只能访问这些文件,而不更改服务器上的任何内容,以通过 TLS 访问 docker 如何创建自己的key.pem,或者有其他方法吗?


抱歉,如果这是常识,我只是无法在任何地方找到我的答案,或者我不知道我到底在寻找什么......

标签: dockersslopenssl

解决方案


是的,您可以针对该服务器上的 docker-daemon 工作,而无需为该服务器创建另一个密钥和证书。

在本地会话中下载server-cert.pem并导出以下环境变量:

DOCKER_TLS_VERIFY="1"
DOCKER_CERT_PATH="server-cert.pem"
DOCKER_HOST= "tcp://HOST:2376"

现在您可以使用本地 docker-client 并使用服务器上的 docker-daemon。例如docker ps,应该显示在远程 docker 上运行的容器。


推荐阅读