将我的站点 cert.key 和 cert.pem 放在 Nginx Docker 容器中是一种好习惯吗?

Is it good practice to have my sites cert.key and cert.pem in a Nginx Docker container?

在本地,我一直在使用 Nginx 容器进行开发,该容器在一个目录中包含所有 ssl 配置和 ssl 证书。

但是,既然我即将转向生产,我很好奇将证书放在 nginx 容器中是否是一种好的做法?

或者,我可以将证书直接放在服务器上。

想知道社区对此有何看法。

就我个人而言,我绝不会在 docker 图片中隐藏秘密。始终在容器启动时安装它们。更喜欢 volume 安装而不是 env_var,因为 env_var 可以被容器内的所有进程访问,并且更有可能被应用记录。

图像应该被认为是可共享的(跨 teams/envs..),但是一旦你将它们与重要的秘密一起发送,例如 cert.pem 可共享的方面有点危险..

此外,通常不是您团队中的每个开发人员都需要知道您的产品机密,但他们可能有权访问 docker 图像。

您可能想查看 Kubernetes Secrets,了解如何将敏感数据共享到您的容器。 Docker (1.13) 的较新版本具有与容器共享机密的类似机制(docker 机密)。