在Windows Server 2008 R2的IIS7中分配SSL证书

我们希望在IIS服务器上有两个SSL站点。 我为https://Django.mycompanyname.com:443使用IIS生成了一个自签名的ssl证书

但是,我们也需要在同一台服务器上使用https://site2.Django.mycompanyname.com:443 。

这可能没有购买通配符SSL证书?

技术上这是可能的 – 这就是所谓的服务器名称指示 。

支持此function的第一个IIS版本是IIS 8.0(请参阅此处 )

在你的情况下,你需要更新你的服务器至lessServer 2012或使用能够提供这个反向代理。

我build议使用nginx作为反向代理 – 这提供了额外的function,如HTTP2的支持和服务内容的整体性能improvmenet(nginx也做了一些相当不错的优化运输,以及)


简要说明这里实际发生的事情:

当使用SNI时,encryption连接的协商会被修改,即客户端在连接开始时发送所请求的主机名 – 因此,较老的客户端不支持这一点。 收到所请求的主机名后,服务器可以决定将哪个证书交给客户端(正确设置证书与所请求的主机名匹配时)。

如果服务器不提供此机制,则每个侦听器只有一个证书可用,并且此证书将分发给正在连接的任何客户端。 因此,单个端点(由IP:Port定义)只能用一个证书(和/或绑定到一个主机名)来响应。

IIS7不提供SNIfunction。

这导致要求包含所有请求/服务主机名的证书(这可能不适用于主机/不同的客户)或每个提供的SSL / TLS端点的唯一绑定(IP:端口)。