IIS7 HTTPS 绑定主机头
IIS7下面默认HTTPS绑定是无法指定主机头的,但我们可以通过手工修改IIS配置来实现主机头绑定。
打开C:\Windows\system32\inetsrv\config\applicationHost.config
定位到如下位置:
<bindings>
<binding protocol="https" bindingInformation="*:443" />
<binding protocol="http" bindingInformation="*:80:abc.demo.com" />
</bindings>
找到https的配置项目,修改为:
<binding protocol="https" bindingInformation="*:443:abc.demo.com" />
注意这里的abc.demo.com要换成你自己的域名,之后保存即可。
===================================小割割=============================================
这样操作的确是主机头和443端口对应了,但是我们会发现其实多个站点https访问后请求到的证书只是最后一个配置的站点,这就导致还是只有一个域名可以正常使用https.
如何处理这个问题呢?
方式1:购买多个IP,每个IP解析一个域名,在绑定HTTPS时指定IP
方式2:使用kangle,apache等来做反代IIS,在前端web服务器上绑定https.
方式3:更换为支持SNI的IIS版本,比如2012R2系统。
===================================小割割=============================================
方法二:
- 直接执行命令,添加443主机头
- 找到站点对应的标识符,MetaBase.xml文件中对应站点的location路径w3svc/后的数字即为站点标识。
- 根据需要可以分别为www和不带www或其他二级站点配置443主机头,打开cmd,执行命令:cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set /w3svc/1592095342/SecureBindings ":443:www.abc.com"
- 测试访问。配置完成后,通过https对各站点进行访问,确认各站点正确跳转。