我正在尝试寻找一种大规模解决方案,用于设置多个域及其子域,并带有 SSL 证书。这相当于数十台负载平衡服务器上的数千个网站。(我们是一家 .NET 商店,如果这有帮助的话)
理想情况下,我们可以实现一些功能而不必为每个域单独购买证书(扩展性不佳)尽管如果这只是必要的步骤,我想我可以找到一个创造性的解决方案。
UCC 似乎并不理想,因为域名之间存在关联,并且无法通过升级来动态添加其他域名。这些域名是为不同的个人客户准备的,因此分离程度是不可避免的,而灵活性至关重要,因为网站的数量不是静态的。
有人找到类似问题的解决方案吗?我甚至会采取一些创造性的想法来推动事情的发展。
(我是该网站的长期用户,但第一次提问,因此如果我可以通过任何具体内容来改进这个问题,请当然告诉我。)
答案1
这里有多个选项,重要的是您的服务器和客户端基础设施是否支持 SNI。
如果您有 SNI 支持,那么我的建议是为您需要的每个站点/域/子域生成一个单独的受信任证书。不要担心,随着从 EFF 开始加密,获取所需数量的可信证书非常简单。
如果您没有 SNI 支持(由于旧客户端或不支持此功能的 IIS 版本),那么 SAN 证书可能是您的最佳选择。同样,您可以从 Let's Encrypt 获取这些证书。只需生成一个包含您所需的所有 SAN 的证书即可。但每次更改需要覆盖的域列表时,您都必须重新生成证书(并且根据您部署证书的方式,您可能必须将其再次部署到每个适用的主机)。但是,您已表示这对您来说并不理想,因为您希望在这些域之间保持分离。
除了使用单独的证书和 SAN 证书的 SNI 之外,第三种常见方法是将 Cloudflare 之类的东西放在所有网站前面,然后让他们为您办理 SSL 证书。这样做的好处是,您也可以减少 SSL 终止延迟,因为客户端与 Cloudflare 进行 SSL 协商时,POP 可能比您自己协商的更近。