我正在将我的应用程序移动到Docker,而且我不确定如何处理证书/密钥的管理。在一个主机中,我有两个Docker容器必须通过TLS监听/通信到许多客户机。在docker之前,我有一个服务器密钥和自签名证书,我的客户端使用自签名证书与服务器应用程序进行通信。
但是现在它们是分离的泊坞容器,什么是正确的方法?我是否将certs / key推送到容器中的目录?如果是这样,那么我的dockerfile将需要复制证书/密钥,并且我不希望密钥成为签入图像的一部分。 (安全)
或者,我是否使用VOLUME并在主机上持有密钥/证书?我试过了,但是容器root用户看不到私钥,只有主用户root用户才读取私钥。
这是真正正确的方法吗?感谢
答案 0 :(得分:4)
我知道这是一个老问题,但我想出了一个有点相似但更通用的方法。我的解决方案是创建一个data-only容器,用于将证书及其密钥安装为/etc/ssl/certs/host/
和/etc/ssl/private/host/
。将其命名为例如certificates
。在即将推出的容器中,您可以使用--volumes-from certificates
轻松使用这些证书。
答案 1 :(得分:3)
花了我一些时间,但我想出了怎么做。
在RUN命令行中,您可以将主机目录作为数据卷安装。这在Dockerfiles中使用VOLUME不起作用。您使用开关-v hostdir:datavolume
http://docs.docker.com/userguide/dockervolumes/
我用它来将容器数据卷连接到存储密钥和证书的主机目录。
由于