IIS7不支持sni,图形界面不支持单域名证书的https站点指定hostname

2022-03-02 17:09:37 浏览数 (1)

IIS7到底支持SNI吗?所谓支持SNI就是一个服务器上部署多个站点、每个站点分别绑定不同的证书、用相同的端口,≤2008R2(II7)的低版本是不支持SNI的,并且图形界面不支持单域名证书的https站点指定hostname。

https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability

IIS7图形界面不支持单域名证书的https站点指定主机名,关联证书就自动关联证书对应的域名了。如果单域名证书的https站点需要指定主机名,请使用≥2012/win8的系统。

≤2008R2(II7)上即便用appcmd命令绑定了hostname,不同的单域名证书的站点的https端口也不能相同。比如:

C:WindowsSystem32Inetsrvappcmd.exe set site /site.name:"Default Web Site" / bindings.[protocol='https',bindingInformation='*:443:aaa.shawyang.cc']

C:WindowsSystem32Inetsrvappcmd.exe set site /site.name:"test" / bindings.[protocol='https',bindingInformation='*:8443:bbb.shawyang.cc']

appcmd命令的使用参考

https://www.cnblogs.com/zzgblog/p/10093720.html

https://www.cnblogs.com/luckjun/p/4250199.html

http://cn.voidcc.com/question/p-estpddfu-kh.html

https://www.orcode.com/question/805177_k78efd.html

https://docs.microsoft.com/zh-hk/archive/blogs/webapps/how-to-set-hostname-during-ssl-binding-in-iis7

https://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html

https://serverfault.com/questions/96810/iis7-cant-set-host-name-on-site-with-ssl-cert-and-port-443

如果是通配型证书,即一个证书包含多个域名的这种,2008R2是支持部署多个站点用不同子域名、相同证书、相同端口的。

如果是单域名证书的多个站点,不能是相同端口,先手动分别绑定不同的单域名证书,然后再执行appcmd命令绑定hostname。

Default Web Site站点

http://aaa.shawyang.cc:80/

http://bbb.shawyang.cc:80/

https://aaa.shawyang.cc:443/

上图中的443绑定是通配型证书

test站点

http://aaa.shawyang.cc:8080/

http://bbb.shawyang.cc:8080/

https://bbb.shawyang.cc:8443/

https://bbb.shawyang.cc:443/

上图中的443绑定的是通配型证书,但8443绑定的是单域名证书,其hostname就是用appcmd命令绑定的(有2条8443,hostname为空的那个是先手动选了单域名证书,hostname不为空的那个就是执行appcmd命令后自动产生的)

http://blog.armgasys.com/?p=80

通配证书(*.domain.com)通过特殊手段可以指定主机名,可以生效(同一个泛域名证书,多个子域名配到多个站点上,只用这一个泛域名证书是可以的)

单域名证书通过特殊手段虽然可以指定主机名了但是不生效,因为2008 r2不支持,虽然2008 r2上可以安装IIS 8.0 Express,但IIS 8.0 Express也仍然不能完全支持SNI,SNI的完全支持最低是Server 2012或Win8系统。

总之,IIS7上的SNI支持是不完整的,不适用多个单独的域名和单独的证书,只适用通配型证书。SNI的完全支持是从IIS8开始的(不包含IIS8 Express),IIS8的最低操作系统版本是Server2012或Win8。

如果是双域名证书,即主域名和www子域名的这种,可以通过下面的方式给证书列表显示的字符串前面显示个*号出来,这样就可以配置2个相同端口的站点分别绑定主域名和www子域名了。

1.安装IIS、把pfx证书准备好放到桌面

如果证书不是现成的pfx格式,需要自己去转换

利用在线ssl证书转换工具将.crt证书转为.pfx格式,转换过程中必须自定义密码

https://csr.chinassl.net/convert-ssl.html

如果有现成的pfx证书,当然就直接到第2步了

2.导入证书

3.运行mmc点上图红色圈出的地方

4.拉滚动条找到"证书" → 点添加→选计算机账户→本地计算机→完成→确定

5.承接上面,如下图点个人→证书→具体证书上右击点属性

友好名称这里,前面加个*

这一步很关键

如法炮制,把另一个也弄了

6.最关键的一步,上一步设置*是为这一步铺垫

选了证书后,主机名可以写了,在设置*之前是不能的

7.行了,不同的证书就通过这种方式写上主机名了,然并卵

以上步骤是为通配证书而写的,单域名证书没办法,IIS7不支持,只能升级IIS,虽然2008 r2上可以安装IIS 8.0 Express,但IIS 8 Express也仍然不支持SNI,SNI的支持最低是Server 2012或Win8系统。

8.IIS8/IIS10在IIS管理器的界面上已经有SNI可选了,不用去MMC那里修改友好名称增加星号了

参考

https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability

https://www.cnblogs.com/developersupport/archive/2013/03/20/IIS7-wildcard-certificate.html

0 人点赞