我们希望在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:端口)。