我可以对不同服务器上的子域名使用单个 Let's Encrypt SSL 证书吗?

我可以对不同服务器上的子域名使用单个 Let's Encrypt SSL 证书吗?

目前,我能够在一台具有多个子域的服务器上获得一个可用的 Let's Encrypt SSL 证书。

例如服务器 A 上的 m.example.com、www.example.com、example.com

但是,为了在服务器 B 上使用 cdn.example.com,我该如何实现?

我的想法是:

(1)服务器 A 上的单个证书,包含所有子域名:cdn.example.com、m.example.com、www.example.com、example.com,然后将其 rsync 到服务器 B

(2)服务器A上有一个证书,包含:m.example.com,www.example.com,example.com

服务器 B 上的第二个证书,仅包含:cdn.example.com

实施的正确方法或最佳方法是什么?

我不确定是否允许针对一个根域 example.com 生成多个证书

我发现,如果我扩展到多台服务器,更新时 (1) 更容易。

可以这样做吗?或者说这样做是多余的?

更新:

两台服务器中有相同的 SSL 证书 才不是完全回答了我的问题。可接受的解决方案部分回答了 SSL 证书是 FQDN 特定的,而不是机器特定的。

如果是这样的话,我提出的(1)不是一个简化的解决方案吗?

我的问题是:

我可以拥有一个仅包含子域的部分 SSL 证书cdn.example.com,而忽略服务器 B 上的其他证书,然后为服务器 A 颁发另一个包含根域 、 和 的 SSLexample.com证书www.example.comm.example.com

答案1

恕我直言,每个服务器都应该有自己的私钥,你可以用 LE 颁发任意数量的证书,我能想到的每个 IP 使用多个 SAN 的唯一原因是你的客户端无法执行 SNI(例如:如果你使用 webhooks/api 或其他端点,则使用旧的 java 客户端)。

TLDR;选项 2,只是不要忘记设置自动续订 cronjobs 并输入有效的电子邮件,以防出现问题。

我会为您的应用/资产使用单独的密钥的另一个原因是不同的信任级别。我假设您的图像不如您的代码/内容重要,并且您不会通过 CDN 向用户提交表单,服务器 A 可能在现场,而服务器 B 可能在 SSD 上的公共云中。

答案2

Let's Encrypt 现在具有通配符证书支持,我认为这最适合您的用例。

以下 Let's Encrypt 博客文章介绍了如何使用 Let's Encrypt DNS-01 质询生成通配符证书。

https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578

相关内容