2

我有一个 ASP.NET 应用程序,它将托管多个租户(软件即服务风格)。每个租户都将拥有自己的域名(www.mydomain.com、www.yourdomain.com)和自己的 SSL 证书。

有没有办法托管应用程序,使所有租户都在同一个应用程序实例上?

  • 我知道您可以让多个 IIS 网站指向同一个共享位置,但这不起作用——它不是同一个实例。那是同一应用程序的不同实例
  • 我也知道您可以将 SSL 主机标头映射与通配符证书一起使用,但这不起作用,因为所有租户都需要是同一主域的子域 - yourdomain.commondomain.com、mydomain.commondomain.com。为了使解决方案有效,每个人都需要拥有自己的域名,而不是子域。(理想情况下,每个租户也可以选择使用 EV 证书,并且您不能拥有通配符 EV 证书。)
4

2 回答 2

3

问题是经典 SSL 要求在 Web 浏览器指示它要使用的主机之前提供证书。因此,您只能为每个 IP/端口组合配置一个证书。

TLS 有一个扩展名为Server Name Indication,它允许浏览器指示它想要与哪个逻辑服务器通信。从 IIS 8.0 (Windows Server 2012) 开始支持此功能。

通配符起作用是因为证书本身表明它对该域下的所有服务器都有效。

于 2008-09-23T13:14:58.387 回答
1

您仅限于 IIS - 或者也可以选择软/硬代理或内容切换硬件?

认为您可以在代理或内容切换处终止 SSL - 然后将请求转换为您自己的内部 url。

例如 foo.com/x 和 bar.com/y 在引擎盖下分别被翻译成 myapp/x 和 myapp/y - 在请求标头中传递原始主机名。

于 2008-09-22T23:32:57.273 回答