首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所需建议:如何正确处理用于加密容器间通信的自签名ssl cert+key对?

所需建议:如何正确处理用于加密容器间通信的自签名ssl cert+key对?
EN

Stack Overflow用户
提问于 2021-04-15 12:09:25
回答 1查看 330关注 0票数 0

也许是一些不太好回答的问题,但我已经搜索过了,但还没有找到最好的方法来处理自签名证书(从opsec的角度来看)来加密我的Debian服务器上被篡改的服务之间的通信,比如Redis、Authelia、维护者等等。

证书被创建和签名,所有相关容器都为证书密钥对的主机安装卷做好了准备。

所以问题很简单:

  1. 我只是将证书密钥对存储在已经挂载到容器中的文件夹中,比如/docker/appdata/portainer/config
  2. 谁应该是所有者: certs+keys对的组、根用户、运行容器或其他东西的用户?
  3. 应该为certs+key对设置哪些权限?

顺便说一下。我的对接器被设置为一个单节点群,所有的容器都部署在堆栈部署中,并与自定义的码头桥接器网络和通信正确地连接在一起,所以我的问题只与cert+key对的处理有关。

事先非常感谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 14:01:36

我是否只是将证书密钥对存储在已经挂载到容器中的文件夹中,例如/docker/appdata/portainer/config?

我建议使用码头秘密。您可以选择使用docker secret create创建秘密,或者从主机上的文件中加载它们。例如:

代码语言:javascript
复制
version: '3.9'
services:
  app:
    image: ubuntu
    secrets:
      - source: my-cert
        target: /certs/my-cert.crt # Load it into /certs/my-cert.crt, default is /run/secrets/{secret_name}
        mode: 0400                 # Read only by owner, default is 444
        # uid: '0'                 # Default UID is root, change if needed.
        # gid: '0'                 # Default GID is root, change if needed.
      - source: my-other-cert
        target: /certs/my-other-cert.crt
        mode: 0400
secrets:
  my-cert:
    external: true                 # Load cert from a secret made with "docker secret create"
  my-other-cert:
    file: ./some-cert.crt          # Load cert from a file on your host machine

谁应该是所有者: certs+keys对的组、根用户、运行容器或其他东西的用户?

几乎肯定是根用户,除非是另一个在容器中运行的用户。您可以通过秘密上的uidgid选项来配置它。

应该为certs+key对设置哪些权限?

一般情况下,您需要400444。使用机密有一个额外的好处,使这些文件不能从容器(甚至根目录)写。您可以在机密上使用mode选项来配置这个选项。

如果您要从磁盘上的文件中加载一个秘密,而不是使用docker secret create,那么它应该来自所有群集节点上可访问的共享存储。我知道你说这是一大群人,只是为了清晰起见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67108184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档