多个 SSL 证书用于访问 IIS 中的一个 ASP.NET 应用程序

多个 SSL 证书用于访问 IIS 中的一个 ASP.NET 应用程序

1
你好,

我有一个 ASP.NET 应用程序,目前可通过单个域名访问,并带有 SSL 证书。我们希望能够通过第二个域名访问同一个应用程序。非 SSL 部分很简单,只需在 IIS 中为网站设置第二个主机标头值即可。我们知道我们需要第二个域名的第二个 SSL 证书,当然还需要第二个 IP 地址来并行运行这两个证书 - 这些都不是问题。

问题是 IIS 似乎不允许您设置一个具有两个 SSL 证书的网站 - 似乎您可以将一个网站绑定到两个 SSL 条目,前提是每个条目都有自己的 IP,但只能使用相同的证书。

我们不想在 IIS 中拥有第二个网站条目,因为这意味着运行 ASP.NET 应用程序的完整第二份副本 - 即内存使用量翻倍。这两个域名基本上是特定国家/地区的变体,因此我们不能使用带有来自通用域名的子域名的通配符证书。

有什么办法吗?是否可以将 IIS 配置为在一个网站条目上提供两个 SSL 证书(当然是基于 IP 地址)?或者实现此目的的最佳方法是在 IIS 中设置第二个网站,该网站将反向代理到“真实”网站上?

答案1

您不需要第二个 IP 地址或第二个网站。您需要做的就是为现有网站颁发新证书,并定义“主题备用名称”属性。这样您就可以对多个完全合格的域名使用相同的 SSL 证书。

答案2

您不能这样做,IIS 中的一个网站只能分配一个证书。

您唯一的选择是定义两个网站。

如果不想重复使用资源,可以将两个应用程序放在同一个应用程序池中。

答案3

这不是 IIS 的问题,而是安全层的问题:

当您连接到 HTTP 服务器时,您的浏览器会在远程服务器上打开 TCP 连接并使用它来请求文档。您请求的主机名仅在此时发送。因此远程服务器只有收到这个请求才知道你要的是哪个网站(感谢显而易见的队长!)

现在,如果您添加 SSL,则必须继续进行证书交换/验证发送请求。此时,Web 服务器不知道您请求的是哪个网站(URL),因此无法选择证书。

您必须定义第二个网站,使用其他 IP 或 TCP 端口来执行此操作。

答案4

您可以通过在同一个 SSL 上添加第二个域名作为备用名称来避免这种情况吗?

据我所知,唯一的方法是在同一站点的不同端口上使用不同的证书,然后让它从防火墙进行端口转发。

相关内容