管理必须与TLS对话的Docker容器的证书/密钥的最佳方法是什么?

cyb*_*oof 6 ssl docker

我正在将我的应用程序移动到Docker,我不知道如何处理证书/密钥的管理.在一个主机中,我有两个Docker容器必须通过TLS监听/通信到许多客户机.在docker之前,我有一个服务器密钥和自签名证书,我的客户端使用自签名证书与服务器应用程序进行通信.

但现在他们是分离的码头集装箱,什么是正确的方法?我是否将certs/key推送到容器中的目录?如果是这样,那么我的dockerfile需要复制证书/密钥,我不希望密钥成为签入图像的一部分.(安全)

或者,我是否使用VOLUME并在主机上持有密钥/证书?我试过了,但是容器root用户看不到私钥,该私钥只读取主机root用户.

什么是正确的方法呢?谢谢

dom*_*ine 5

我知道这是一个老问题,但我想出了一个有点相似但更通用的方法。我的解决方案是创建一个纯数据容器,将证书及其密钥安装为/etc/ssl/certs/host//etc/ssl/private/host/。例如命名它certificates。在即将推出的容器中,您可以通过使用 轻松使用这些证书--volumes-from certificates


cyb*_*oof 3

我花了一些时间,但我弄清楚了该怎么做。

通过 RUN 命令行,您可以将主机目录挂载为数据卷。使用 dockerfile 中的 VOLUME 无法实现此目的。您使用开关 -v hostdir:datavolume

http://docs.docker.com/userguide/dockervolumes/

我用它来将容器数据卷连接到存储密钥和证书的主机目录。

谢谢