所以,我正在和一位朋友讨论SaaS网站和SSL证书,我们都不能解释电子商务或者任何能够让客户拥有自己的域名的服务如何拥有支持SSL的服务。
我已经search了UCC和通配符证书,但都不符合需求,因为在UC证书的情况下,您需要列出已经创build的域(SaaS模型中不是这种情况)如果是通配符证书,则必须使每个客户端都成为子域,并且许多服务都提供了使用自己的域的选项。
那么SaaS服务如何为“个性化”域名的用户提供SSL?
上面的答案可能有点过时。 想要为多个客户域提供SSL的现代SaaS应用程序将使用SNI。 SNI是“服务器名称指示”(RFC 6066;过时的RFC 4366,RFC 3546)是对传输层安全性的扩展,它允许客户端告诉服务器它正试图访问的主机的名称。
这比旧的处理方式更有效率,比如UCC,甚至更糟,每个证书1个IP。 这也是为什么传统上,获取自定义域名将成为传递给客户的成本。 这是和平常看到的平台收费自定义域$ X /月作为一个附加function。 这是因为运行自定义域所涉及的成本。
如果你正在寻找今天这样的事情,那么你应该从SNI开始,以这种方式来提供证书。 根据你的堆栈,这可以很容易做(NodeJS)或真的很难(传统的基于Apache / Nginx的应用程序代理)。 通常情况下,传入的SNI请求会遇到困难,并将其与您的数据库或其他应用程序逻辑进行匹配,以确保您正在为该请求提供正确的证书。
如前所述,如果您使用Node,您可能会很幸运。 如果您想提供由Let's Encrypt提供的证书,并且您希望根据传入请求中的数据dynamic提供证书,则可以使用一些优秀的库来帮助解决此问题。 例如https://git.daplie.com/Daplie/node-greenlock是一个库,可以帮助你的一些。
最后,如果您正在寻找第三方解决scheme,那么您可以https://clearalias.com ,这基本上可以让您摆脱服务SNI SSL证书的困难,如果您不擅长pipe理并维护你自己的SNI层。
他们通常使用UCC SSL证书,允许他们通过使用主题备选名称来保护多个域名。 您可以重新颁发具有更新的域名证书的证书,因此您不仅仅限于首次创build证书时所保护的域名。
一些供应商有专门销售的产品,如Globalsign: https ://www.globalsign.com/cloud/ Cloudflare使用。
作为一个提供商,几乎可以为每个拥有所需域名和子域名的客户创build一个SSL证书,如果客户从其账户中删除了某个域名,就可以重新颁发该证书。 作为一家SaaS提供商,您通常也会控制SSL证书的设置,所以几乎所有的事情都可以自动化。