您可以通过SSL在单个ASP.NET应用程序实例上托管多个租户吗?

时间:2008-09-22 22:36:54

标签: asp.net iis ssl hosting

我有一个ASP.NET应用程序,它将托管多个租户(Software-as-a-Service样式)。每个租户都有自己的域名(www.mydomain.com,www.yourdomain.com)和他们自己的SSL证书。

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

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

2 个答案:

答案 0 :(得分:3)

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

TLS扩展名为Server Name Indication,允许浏览器指示要与之通信的逻辑服务器。此功能为supported as of IIS 8.0 (Windows Server 2012)

通配符可以正常工作,因为证书本身表示它对该域下的所有服务器都有效。

答案 1 :(得分:1)

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

认为您可以在代理或内容交换机上终止SSL - 然后将请求转换为您自己的内部网址。

e.g。 foo.com/x和bar.com/y分别被翻译成myapp / x和myapp / y - 在请求标题中传递原始主机名。