IIS7下的https无法绑定主机头,显示灰色,原因是IIS7不支持SNI,即一个IP只能绑定到一个HTTPS站点上。
打开C:\Windows\system32\inetsrv\config\applicationHost.config
定位到如下位置:
<bindings> <binding protocol="https" bindingInformation="*:443" /> <binding protocol="net.tcp" bindingInformation="808:*" /> <binding protocol="net.pipe" bindingInformation="*" /> <binding protocol="net.msmq" bindingInformation="localhost" /> <binding protocol="msmq.formatname" bindingInformation="localhost" /> <binding protocol="http" bindingInformation="*:80:www.fuwuqijia.com" /> </bindings>
找到https的配置项目行,修改为:
<binding protocol="https" bindingInformation="*:443:www.fuwuqijia.com" />
注意这里的www.fuwuqijia.com要换成你自己的域名,之后保存即可。
这样操作的确是主机头和443端口对应了,但是我们会发现其实多个站点https访问后请求到的证书只是最后一个配置的站点,这就导致还是只有一个域名可以正常使用https.
如何处理这个问题呢?
方式1:购买多个IP,每个IP解析一个域名,在绑定HTTPS时指定IP
方式2:使用kangle,apache等来做反代IIS,在前端web服务器上绑定https.
方式3:更换为支持SNI的IIS版本,比如2012R2系统。