所以,我正在与一位朋友讨论 SaaS 网站和 SSL 证书,我们都无法解释电子商务或任何允许客户拥有自己的域的服务如何拥有启用 SSL 的服务。
我搜索过 UCC 和 Wildcard Certificates ,但似乎都不符合需求,因为在 UC 证书的情况下,您需要有一个已经创建的域列表(在 SaaS 模型中不是这种情况)并且在在通配符证书的情况下,您必须将每个客户端设为子域,并且许多服务提供使用您自己的域的选项。
那么 SaaS 服务如何为拥有“个性化”域的人提供 SSL?
小智 5
上面的答案可能有点过时了。想要为多个客户域提供 SSL 服务的现代 SaaS 应用程序将使用 SNI。SNI 是“服务器名称指示”(RFC 6066;过时的 RFC 4366、RFC 3546)是传输层安全的扩展,它允许客户端告诉服务器它试图访问的主机的名称。
这比处理此问题的旧方法(例如 UCC 或更糟,每个证书 1 个 IP)要高效得多。这也是为什么传统上保护自定义域的成本会转嫁给客户的原因。看到平台为自定义域收取 $X/mo 的费用作为附加功能,这在过去和现在是相当普遍的。这是因为运行自定义域所涉及的成本。
如果您今天想要开发这样的东西,您可以从 SNI 开始并以这种方式提供证书。根据您的堆栈,这可能非常容易(NodeJS)或非常困难(传统的基于 apache/nginx 的应用程序代理)。通常困难在于接收传入的 SNI 请求并将其与您的数据库或其他应用程序逻辑进行匹配,以确保您为该请求提供正确的证书。
如前所述,如果您使用的是 Node.js,那么您可能很幸运。如果您想要提供 Let's Encrypt 提供的证书,并且想要根据传入请求中的数据动态提供证书,那么有一些很棒的库可以帮助解决这个问题。例如https://git.coolaj86.com/coolaj86/greenlock.js是一个可以帮助您完成其中一些工作的库。
最后,如果您正在寻找第三方解决方案,可以使用https://clearalias.com,如果您不是特别热衷于管理,它基本上允许您通过将其作为服务提供来绕过提供 SNI SSL 证书的困难并维护您自己的 SNI 层。
| 归档时间: |
|
| 查看次数: |
4295 次 |
| 最近记录: |