0

多个守护程序应用程序想要访问相同的 TLS 证书(或链,或私有)密钥。

  • NGINX 想要访问 /etc/letsencrypt/live/example.org/privkey.pem
  • 阿帕奇也是如此。
  • 和绑定。
  • 还有我最喜欢的 [sftdyn] Github 包。

他们都使用不同的 GID 和组名运行他们的守护进程。

我尝试以安全的方式保护私钥,但通过以下各种方法(以及后来被取消的一些方法)在不同的守护进程(拥有自己的 GID)之间共享它:

  1. 将文件权限设置为“荣耀之光” chmod a+rwx。这被否决了,因为它向整个文件系统揭示了秘密 privkey.pem 文件。

  2. 创建一个新组keys并将nginx, apache, named(或bind)和sftdyngroup 添加到keys/etc/group 中的组(或使用adduser nginx keys)。keys在 PEM 文件上使用新组。然后用 .cap 限制 PEM 文件的权限chmod 0640

  3. 使用setfacl.

2 或 3 中哪一个最适合解决这个棘手的问题?

4

1 回答 1

1

我的系统管理员方面坚信“保持简单”,并说通过“密钥”组(或 ssldaemons 或任何您想命名的名称 - 我认为组名应该尽可能描述成员资格或目的)和常规老无聊的文件系统权限。

另一方面,如果您已经在使用 ACL,那么只使用另一个或三个 ACL 规则会更适合您的工作流程/策略/管理风格。

如果您还没有使用 ACL,那么我不会走这条路——不需要让事情变得过于复杂。当然,除非您需要管理层的借口来做到这一点:)

于 2018-08-08T02:29:48.703 回答