【问题标题】:How to create certificates for multiple instances of a Docker container using Docker secrets?如何使用 Docker 机密为 Docker 容器的多个实例创建证书?
【发布时间】:2019-05-10 20:53:41
【问题描述】:

我有一个尝试在 Docker 容器中运行的 Java 应用程序。该应用程序使用密钥库和信任库与数据库(也将是一个容器)和外部身份验证服务机制(如 LDAP)进行安全通信。
计划是使用 Kubernetes/Swarm/Openshift 来运行和管理容器。我计划运行应用程序的多个实例,并且还想利用 Kubernetes/Docker 如何管理容器之间的通信(即,我不希望不必在我运行的每个容器实例上设置主机名/IP)。 我看过那里的文档,看起来我可以使用证书并根据证书创建 Docker 机密。我还看到了如何将秘密放置在容器中的正确位置。

问题是——我在用于创建 Docker 机密的证书中放入了什么? CN 用什么? IP?

当我们生成证书时,我们通常将 FQDN 作为 CN 并将主机名和 IP 放在 SAN 下。我是 Docker 和秘密的新手,不知道这些东西在幕后是如何工作的,但我想 Docker 动态生成的 IP 将与我的证书中的 IP 不匹配,除非我指定容器的主机名和 IP 去成为,我试图避免。 有没有办法创建一个适用于多个应用程序实例的证书?或者我是否需要为每个实例创建一个证书,并为每个容器实例定义主机名和 IP 地址,以使证书/机密工作。 提前致谢

【问题讨论】:

    标签: docker kubernetes certificate swarm docker-secrets


    【解决方案1】:

    Kubernetes 中的服务有internal DNS names,如servicename.namespace.svc.cluster.local。您可以使用其短名称或 FQDN 寻址服务。您可以为该 DNS 名称颁发证书并将它们存储为机密,实际上您不需要知道服务 IP。

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 2019-07-20
      • 1970-01-01
      • 2016-12-01
      • 2022-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      相关资源
      最近更新 更多