IIS服务器多域名部署多个HTTPS的方法

当我们使用windows服务器配置多站点SSL证书时,经常报错提示“至少一个其他网站正在使用同一HTTPS绑定,而此绑定用另一证书配置,确实要重用此HTTPS绑定并将其他网站重新指定使用新证书吗?”由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加密。最终IIS只好使用第一个绑定到该IP:PORT的站点证书解密请求,从而有可能造成对于其他站点的请求失败而报错。

IIS服务器多域名部署多个HTTPS的方法(图1)

默认情况下,使用IIS8以下版本的HTTPS绑定是无法指定主机名的。“主机名”的内容是灰色不可编辑的。这就带来了一个很大的问题,当一台IIS服务器上绑定两个不同的域名,主机上只能启用一个网站的HTTPS,第二个网站的HTTPS无法启用。

当我们遇到这样的问题有以下几个解决方法:

一、是为每个站点分配一个独立的ip,这样冲突就解决了,甚至主机头也不用添加了。

二、是使用通配证书。我们采用通配证书颁发给*.abc.com,如果我们采用颁发给*.abc.com的证书,这样任何访问的请求均可以通过该证书解密,证书匹配错误也就不复存在了。

三、是升级为IIS8,IIS8中添加的对于SNI(Server Name Indication)的支持,服务器可以通请求中提取出相应的主机头从而找到相应的证书。

四、如果您不想升级IIS版本,只有想办法把灰色不可编辑的主机名修改即可,这个需要手动完成。

由于前两种方式,增加ip和购买通配符证书,都会增加我们的成本。我们重点讲后两种方式:

我们首先讲一下后升级IIS方式,由于小编的主机已经是IIS8版本就直接开始操作了。

安装服务器证书,进入IIS,点击主机名,选择服务器证书,如下图:

IIS服务器多域名部署多个HTTPS的方法(图2)

点击右侧导入,如下图:

IIS服务器多域名部署多个HTTPS的方法(图3)

选择自己的证书文件,确定即可:

IIS服务器多域名部署多个HTTPS的方法(图4)

添加网站绑定,如下图

IIS服务器多域名部署多个HTTPS的方法(图5)

注意:这里类型选择https,端口选择443,主机名填写自己的域名,必须勾选“需要服务器名称指示”前的勾选框,SSL证书选择自己网站的证书;点击确定,我们进行测试如果浏览器中两个网站地址栏呈现类似以下状态,则配置成功:

IIS服务器多域名部署多个HTTPS的方法(图6)

下面我们再说一下IIS7的配置

首先找到IIS配置文件的位置在:

IIS服务器多域名部署多个HTTPS的方法(图7)

注意:这个文件可以无法直接打开编辑,可以先把它复制到桌面上去编辑,编辑完毕后再覆盖回去。

找到如下位置:

<bindings> <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.abc.com" /> <binding protocol="https" bindingInformation="*:443:" /> </bindings>

我们修改一下*:443:这部分内容的配置,修改成如下配置:

<binding protocol="https" bindingInformation="*:443:www.abc.com" />

修改完成后,将文件覆盖回去,这时回到IIS控制台(不用重启),可以看到主机名已经成功绑定上了。

这时候就可以正常启用站点了。

猜你喜欢

转载自blog.csdn.net/weixin_45480174/article/details/108973495
今日推荐