如何在多个具有不同组名的守护进程之间共享 Letsencrypt 证书文件

How to share Letsencrypt cert files amonst several daemons having different group name

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

而且他们都 运行 他们的守护进程具有不同的 GID 和组名。

我尝试以一种安全的方式保护私钥,但在不同的守护进程(拥有自己的 GID)之间共享它,并采用以下各种方法(有些后来被否决)是:

  1. 将文件权限设置为 "blaze of glory" chmod a+rwx。这被禁止了,因为它向整个文件系统揭示了秘密 privkey.pem 文件。

  2. 创建一个新组keys并添加nginxapachenamed(或bind)和sftdyn组到/etc/group中的keys组(或使用adduser nginx keys)。在 PEM 文件上使用新的 keys 组。然后用 chmod 0640.

  3. 限制 PEM 文件的权限
  4. 使用setfacl.

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

我的系统管理员方面坚信 "keep it simple" 并说通过 "keys" 组(或 ssldaemons 或任何你想命名的 - 我认为组名应该描述成员身份)或目的(如果可能)和常规的旧无聊文件系统权限。

另一方面,如果您已经在使用 ACL,那么仅使用另一个或三个 ACL 规则会更适合您的工作 flow/policy/admin 风格。

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