默认情况下,IIS7 下面 HTTPS 绑定是无法指定主机名的。 如下图可以看到“主机名”这块是灰色不可编辑的。
IIS7下的https无法绑定主机头,显示灰色,原因是IIS7不支持SNI,即一个IP只能绑定到一个HTTPS站点上。
打开IIS ,找到网站,右击编辑绑定时:
关于导入iis .pfx格式的证书后,编辑绑定时,主机名为灰色的问题
解决方法 :
我们可以通过手工修改 IIS 配置来实现主机头绑定。打开如下位置的文件。
注意:这个文件可以无法直接打开编辑(报文件不存在),可以先把它复制到桌面上去编辑,编辑完毕后再覆盖回去。
(1)打开C:\Windows\system32\inetsrv\config\applicationHost.config
(2)找到如下节点位置:
1 2 3 4 5 6 7 8 9 10 11 | <site name= "ishop" id= "6082" serverAutoStart= "true" > <application path= "/" applicationPool= "ishop" > <virtualDirectory path= "/" physicalPath= "C:\wwwroot\ishops\web" /> </application> <bindings> <binding protocol= "http" bindingInformation= ":80:www.xxxx.com" /> <binding protocol= "https" bindingInformation= "*:443: " /> </bindings> <limits maxBandwidth= "4294967295" maxConnections= "4294967295" /> <logFile logFormat= "W3C" directory= "C:\wwwroot\ishops\log" /> </site> |
*以www.xxxx.com域名为例
将
<binding protocol=”https” bindingInformation=”*:443: ” />
改为:
<binding protocol=”https” bindingInformation=”*:443:www.xxxxx.com” />
注意:这个文件可以无法直接打开编辑(报文件不存在),可以先把它复制到桌面上去编辑,编辑完毕后再覆盖回去。
(4)修改完毕后(不用重启),访问https://www.xxxx.com试试
这样操作的确是主机头和443端口对应了,但是我们会发现其实多个站点https访问后请求到的证书只是最后一个配置的站点,这就导致还是只有一个域名可以正常使用https.
如何处理这个问题呢?
方式1:购买多个IP,每个IP解析一个域名,在绑定HTTPS时指定IP
方式2:使用kangle,apache等来做反代IIS,在前端web服务器上绑定https.
方式3:更换为支持SNI的IIS版本,比如2012R2系统。
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛