docker工人证书的最佳实践

如果我有一个满足以下条件的docker应用程序(J2EE web应用程序):

  • 在不同的主机上有多个容器被部署在不同的主机上,这些主机之间将通过SSL / TLS相互通信 – 所以容器需要自己的SSL证书,并且需要信任其他容器的证书
  • 这些容器将另外对其他外部URL进行HTTPS调用 – 所以这些服务器的证书也需要被信任。 这些外部URL在部署时未知,因此证书需要单独导入
  • 作为J2EE Web应用程序的应用程序使用java密钥库和信任库作为证书

鉴于此,如何将证书提供给服务器?

Docker目前还没有办法处理秘密(这是在他们的路线图上)。 Docker上有一个长时间的线程。 它列出了人们用来将容器input秘密的许多方法。 https://github.com/docker/docker/issues/13490

有些人使用HashiCorp的保险柜,其他人使用主机(env vars)或docker工具(这是我的团队所做的)encryption机密。 容器可以在开始时解密(入口点/命令)。 要在运行时添加秘密,您可以创build一个自定义容器(接受http请求并将其存储在信任库中)。 只是你会在上面的链接中看到许多build议。