SaaS服务如何为拥有“个性化”域名的人提供SSL?

SaaS服务如何为拥有“个性化”域名的人提供SSL?

因此,我正在与一位朋友讨论 SaaS 网站和 SSL 证书,但我们都无法解释电子商务或任何允许客户拥有自己的域名的服务如何提供启用 SSL 的服务。

我搜索过有关 UCC 和通配符证书的信息,但似乎都不符合要求,因为对于 UC 证书,您需要有一个已经创建的域名列表(SaaS 模型中并非如此),而对于通配符证书,您必须为每个客户端创建子域名,并且许多服务都提供使用您自己的域名的选项。

那么SaaS服务如何为拥有“个性化”域名的人提供SSL呢?

答案1

上述答案可能有点过时了。想要为多个客户域提供 SSL 的现代 SaaS 应用程序将使用 SNI。SNI 是“服务器名称指示”(RFC 6066;已过时的 RFC 4366、RFC 3546),是传输层安全性的扩展,允许客户端告知服务器它试图访问的主机的名称。

这比以前的处理方式(例如 UCC 或更糟糕的每张证书 1 个 IP)要高效得多。这也是为什么传统上,保护自定义域名的成本会转嫁给客户。平台对自定义域名收取每月 $X 的费用作为附加功能,这种情况在过去和现在都很常见。这是因为运行自定义域名需要成本。

如果您今天想要开发类似的东西,那么您应该从 SNI 开始,并以此方式提供证书。根据您的堆栈,这可能非常容易(NodeJS)或非常困难(传统的基于 apache/nginx 的应用程序代理)。通常,困难在于接收传入的 SNI 请求并将其与您的数据库或其他应用程序逻辑进行匹配,以确保您为该请求提供正确的证书。

如上所述,如果您使用 Node,您可能会很幸运。如果您想提供 Let's Encrypt 提供的证书,并且希望根据传入请求中的数据动态提供证书,那么有一些很棒的库可以为您提供帮助。例如https://git.coolaj86.com/coolaj86/greenlock.js是一个可以帮助您解决其中一些问题的图书馆。

最后,如果你正在寻找第三方解决方案,那么https://clearalias.com,如果您不是特别热衷于管理和维护自己的 SNI 层,它基本上可以让您通过将其作为服务提供来绕过提供 SNI SSL 证书的困难。

答案2

他们通常使用 UCC SSL 证书,这允许他们通过使用主题备用名称来保护多个域名。您可以重新颁发证书,其中包含其保护的域的更新列表,因此您不仅限于首次创建证书时保护的域。

一些供应商有专门针对此目的销售的产品,例如 Globalsign:https://www.globalsign.com/cloud/由 Cloudflare 使用。

作为提供商,您几乎可以为每个客户创建一个 SSL 证书,其中包含他们需要保护的域和子域,如果客户从其帐户中删除了某个域,则重新颁发该证书。作为 SaaS 提供商,您通常还可以控制 SSL 证书的设置,因此几乎所有事情都可以自动化。

相关内容