首页 > 解决方案 > 需要的建议:在同一主机上的多个 Web 服务之间共享 LE 通配符证书时的最佳实践

问题描述

我需要你的建议。从 opsec 的角度来看,在同一主机上的多个 Web 服务之间共享 LE 通配符证书时,最好的方法是什么?

我的设置是这样的:

我的问题:

我想用 LE 通配符证书保护上述管理服务,因为我厌倦了必须确认我“接受风险”,因为他们使用的是自签名证书,但我怀疑什么是最好的实现这一目标的方法。到目前为止,我看到了三种可能的解决方法,它们都有自己的缺点:

  1. 创建一个由 cron 作业执行的脚本,该脚本在证书更新时将 LE 证书复制到各种管理服务证书文件夹。
    • 缺点:脚本需要以root权限运行
  2. 允许管理员服务访问主机映射文件夹中的证书。
    • 缺点:我需要 704 访问 LE Cert 文件夹或 740 并将所有管理员服务用户添加到 LE 组
  3. 通过反向代理服务管理服务,启用 TOTP 保护并限制对服务器公共 IP 的访问。
    • 缺点:如果我搞砸了,或者在我的 Nginx 或 TOTP 安装中出现零日漏洞,管理服务是可以公开访问的

从 opsec 的角度来看,您认为上述哪些解决方案是“最佳实践”解决方案,还是您会提出一个我没有考虑过的完全不同的解决方案?

提前谢谢了!

标签: dockersslhttpslets-encrypt

解决方案


考虑以下:

  1. 使用 openssl 之类的东西创建合法的本地 CA 根证书。

  2. 使用它,合法地签署您将用于管理服务的服务器证书,并配置管理服务 SSL 端点以使用它。

  3. 确保您的 CA 根证书位于您连接到管理服务的计算机的受信任 CA 证书证书存储区(又名信任存储区)中。

以这种方式创建的证书只有一个不受信任的根 CA,直到您在连接机器的信任库中明确信任它(即步骤 #3)。现在的额外好处是,您可以在需要时使任一证书到期,而不是像 LE 通配符证书那样每 3 个月到期一次。

资源:https ://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/


推荐阅读