对于必须使用TLS的Docker容器,管理证书/密钥的最佳方法是什么



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

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

或者,我是否使用VOLUME并持有主机上的密钥/证书?我试过了,但容器根用户看不到私钥,而私钥是主机根用户只读的。

真正正确的方法是什么?感谢

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

我花了一些时间,但我想好了怎么做。

在RUN命令行中,您可以将主机目录装载为数据卷。使用dockerfiles中的VOLUME无法执行此操作。您使用开关-v hostdir:datavolume

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

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

感谢

最新更新