我们有一个基于云的 SaaS 多租户系统。又称:平台。该平台通过允许最终用户执行某些工作来为我们的客户提供服务。举个例子,假设我们有一个博客服务,我们卖给公司,然后他们可以在上面发布博客并与用户互动。
到目前为止,为了有些为了使服务白标化并能够安全地执行此操作,我们为每个客户购买了一个域名并为其颁发了 SSL 证书(UCC 证书上的域名验证)。例如,如果我们有一个名为 corporate1 的客户,我们通常会购买一个名为 blogcorporate1.com 的域名并对其进行管理。
我们希望将解决方案完全白标化,这意味着我们希望能够通过 blog.corporate1.com 为我们的客户提供服务。
有办法吗?
我们可以这样完全独立于客户吗?也就是说,如果他们只是重定向到我们的服务,而我们将服务器更改为不同的 IP,那么我们需要他们指向新的 IP。
他们可以将子域名 blog.corporate1.com 的管理委托给我们,然后我们来管理该子域名的区域并为其颁发 SSL 证书(还可以设置电子邮件转发和我们所做的其他 DNS 工作)吗?
答案1
根据您想要为这些域名获取的 SSL 证书,您可以请求一个域名验证证书,该证书只需要您控制指定的 sub.domain.tld。
如今,一个很好的例子就是 let's encrypt。只要主机名指向你的服务器,你就可以申请证书。
certbot-auto certonly --webroot -d blog.domain.tld -w /var/www/blog.domain.tld
答案2
这里有几个问题,这对 SF 来说不是很好的做法。话虽如此,据我了解,您有一个客户,我们叫他们example.com
,您想blog.example.com
使用 SSL 在 上为他们提供博客服务。
他们托管 DNS。如果我们的服务器 IP 发生变化怎么办?
他们更新他们的 DNS 来宣传您的新 IP,并且一切继续正常运行。
他们可以将
blog.example.com
子域名委托给我们的名称服务器吗?
是的,只要他们有一些 DNS 线索,以及一个还不错的 DNS 基础设施。然后,您就可以安排 IP 更改,而无需参考客户端。
我可以获得 SSL 证书吗
blog.example.com
?
如果这普遍可以做到,那么 SSL 的整个理念就会被彻底颠覆。 一些提供商会将对 HTTP 服务的控制视为blog.example.com
证明您有权获得该 CN 的 SSL 证书(正如 lalokin 在其回答中指出的那样,letsencrypt 就是这样一个提供商),因此一旦您设置http://blog.example.com
并运行,您就可以从这样的提供商处获得证书。一些 CA 需要更多证据来证明您有权使用 FQDN(例如,控制正在运行的邮件服务器blog.example.com
),如果(比如说)客户端想要 EV 证书,事情很快就会变得更加复杂。
这里通常有效的解决方案是生成 CSR,将其提供给客户,并告知他们让任何适合他们的提供商对其进行签名。一旦他们向您提供签名证书,您就可以安装它,然后 SSL 就会启动。