我正在寻求以下方面的澄清/指导。
我已经www.example.com
在由 Cloudflare CDN 提供支持的 CMS 上进行了安装。
我想要保护托管在单独服务器(非 Cloudflare)上的其他应用程序使用的子域名:
app.example.com
servide.example.com
mail.example.com
由 Cloudflare 提供支持的 CMS 拥有为 颁发的 SSL 证书www.example.com
,并告诉我现有证书不能重新用于他们的系统,并且他们的证书不能涵盖不由他们托管的内容。
我的理解是,除非主域 () 上未安装此证书,否则www.example.com
我们无法在其他子域上申请。对吗?
换句话说,是否可以在www.example.com
其服务器上拥有 CMS 提供的证书,并使用通配符证书同时保护单独服务器上的所有其他子域?
答案1
就名称检查而言,客户端只需检查它向服务器提供的名称是否与服务器提供的证书中嵌入的名称列表相匹配。
客户端无法知道另一台服务器是否某处在 Internet 上,在 SAN 中具有相同的名称。
请注意,这不太可能造成任何混淆,因为 DNS 确保只有一台服务器可访问。
也就是说,如果www.example.com
DNS 指向非 Cloudflare 提供的服务,客户端将连接到该服务并获得证书*.example.com
。这将通过名称匹配测试,因此应该会成功。
如果您现在将 DNS 设置更改为指向www.example.com
Cloudflare 服务器,则客户端将看到 Cloudflare 提供的证书(www.example.com
仅带有),并且由于名称匹配,它仍然会很高兴。
同时,任何非www.example.com
名称(app
、servide
等mail
)都将指向 DNS 中的非 Cloudflare 服务器并乐意使用该*.example.com
证书。
答案2
您使用 Cloudflare 证书来提供 Cloudflare 服务。忘掉它,让它“正常工作”。
您可以根据需要购买并使用外部证书来获取外部服务,就像使用任何其他 DNS 服务器一样。除了 Cloudflare 托管的 A 和 CAA 记录外,他们根本不会触及这些记录。