同一台服务器不同网站使用不同的SSL证书(解决至少一个其他网站在使用同一https绑定问题)
- 2020-04-01 08:00:00
- zstmtony 原创
- 7374
一、待解决问题:
1.如何在同一台服务器上的不同站点使用不同的SSL证书(https)
2.至少一个其他网站在使用同一https绑定(不同站点使用不同的SSL证书)
3.一个服务器使用多个ssl证书(https)
发现网站上有很多网友都有类似的问题:
1. 同一网站两个域名安装了两个免费ssl数字证书,只有一个能正常使用,不修改端口怎么实现两个免费ssl证书都可以使用。
2. 一个iis创建了两个https协议的网站,两个网站都是二级域名,申请的都是免费的SSL证书,后面一个网站选择SSL证书的时候遇到问题了,iis暂只能绑定一个证书,求大神指点
我的出错过程:
在阿里云之前使用了免费的ssl证书,最近又增加了一个新的网站,又申请了一个新的免费的ssl证书,在部署https访问时遇问题:
两个站点是共用一台阿里云的服务器,在这台服务器上分别部署着各自的网站,2个网站申请了自己网站域名对应的阿里云的免费版域名型SSL证书,但在给网站绑定SSL证书时,发现只有一个网站能实现https安全访问
在给另一个网站绑定域名时,总提示至少一个其他网站在使用同一https绑定,保存后再打开,发现2个网站绑定的SSL证书是一样的,即使你选择是不同的证书,就好象2个证书分不清,都转向了同一个。那如何解决这个问题呢
二、网上的解决办法
所以这个方案不太现实,我们不能让用户在访问我们的网站时还要指定端口号。
2.为每个站点分配一个独立的ip,这样就可避免冲突,甚至主机头也不用添加了,但代价是购买更多的IP,在有些服务商,增加一个新IP需要1000-2000元,是一笔不小的花销
3.使用通配证书也可解决这个问题,但通配型SSL证书会更贵。每年至少比普通域名型SSL证书要高出好几千。代价也有点大
4.升级为IIS8,IIS8中添加的对于SNI(Server Name Indication)的支持,服务器可以从请求中提取出相应的主机头从而找到相应的证书。
我们使用的服务器安装的操作系统是Windows Server 2012R2,而该系统预装的就是IIS8.5,不是IIS8的可以自行升级为IIS8,在IIS8中,因为添加了对SNI的支持 可以很方便的解决我们所面临的问题。
三、我选择最后这种经济解决方案,步骤如下
导入证书
点击右侧导入, 选择自己的证书文件,确定即可
另一种导入证书的方法:MMC命令方式 添加证书的方法(可选)
也可使用 MMC,添加或删除管理单元,选择证书 确定
选择计算机账户
本地计算机
证书 个人 所有证书 导入
选择你的证书 pfx 文件导入,再输入 密码,导入即可
2.给自己的网站绑定相应的SSL证书:从IIS网站中选择自己的网站,右键,编辑绑定
3.添加网站绑定,如下图
注意:类型选择https,端口号输入443,主机名填写自己的域名
而且一定注意:“需要服务器名称只指示”前面的勾选框必须勾选,这个是解决问题的关键,SSL证书选择自己网站的证书(这里的选项是之前导入的证书)
关键是勾选“需要服务器名称指示”。
不然会提示“至少一个其他网站在使用同一https绑定”导致证书绑定失败
4. 确定后,SSL证书绑定成功,可使用https访问网站了
用同样的方式配置另外一个网站(只是 主机名和SSL证书不同,其他配置操作方法一样)
5.这样,两个网站都已配置成可以使用https访问
6. 如果浏览器中两个网站地址栏呈现认证的图标,则配置成功:
相关文章
当一个https的请求到达IIS服务器时,https请求为加密状态,需要拿到相应的服务器证书解密请求。由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加密。最终IIS只好使用第一个绑定到该IP:PORT的站点证书解密请求,从而有可能造成对于其他站点的请求失败而报错。
在IIS8中添加的对于SNI(Server Name Indication)的支持,服务器可以通请求中提取出相应的主机头从而找到相应的证书。
安装服务器证书,进入IIS,点击主机名,选择服务器证书
点击右侧导入
选择自己的证书文件,确定即可:
添加网站绑定
注意:类型选择https,端口号输入443,主机名填写自己的域名,“需要服务器名称只指示”前面的勾选框必须勾选,这个是解决问题的关键,SSL证书选择自己网站的证书(这里的选项是之前导入的证书);
6.确定后,该网站SSL证书绑定成功,可以使用https访问该网站,同样的方式,你需要配置另外一个网站(PS:除过主机名和SSL证书不一样外,其他配置都是一样的);
7.至此,两个网站都已配置成可以使用https访问;
8.测试是否成功:浏览器地址栏输入你要访问的地址:如https://www.domain.com,
如果浏览器中两个网站地址栏呈现类似以下状态,则配置成功:
如果一步一步操作到这里,那么恭喜你,你已经解决了这个问题。
联系人: | 王先生 |
---|