|
产品
支持
|
虚拟主机安全方案前提随着虚拟主机技术的发展,功能越来越丰富,已经不仅仅只是满足个人网站的需要,越来越多的小型电子商务网站也采用了虚拟主机来建站,如何为这些商户提供经济、方便的SSL解决方案,成为虚拟主机供应商的业务新增长点。 技术分析为什么我不能在相同IP地址下多个域名的虚拟主机上使用SSL?这个问题十分专业,有些像“先有鸡还是先有蛋”的问题。SSL协议层是在HTTP协议层下面的,当SSL连接建立时,SSL模块在Web模块之前和浏览器进行通讯并交换证书、建立加密隧道。众所周知,Web服务器是通过HTTP数据包中的”Host”字段来区分虚拟主机的。而SSL模块在把服务器证书发送到浏览器时,还没有收到任何关于HTTP的数据包,更不知道虚拟主机的域名,因此SSL模块只能固定的将一张SSL证书发送到浏览器,而不能根据域名有选择性的发送证书。因此,您无法在一个IP地址的默认SSL 443端口下为多个虚拟主机配置多张证书。 由于一个IP与一个端口号只能对应一张证书,因此我们可以采用以下方式来解决:
如果多个虚拟主机是1个主域名下的多个子域名,情况发生了转变,因为你可以申请通配符SSL证书。例如: 有2个虚拟主机 abc.domain.com、xyz.domain.com,你申请一张 *.domain.com的证书,按照前面所说的原理,2个虚拟主机都使用同一个IP和默认的443端口,当浏览器访问IP:443端口时,SSL模块把通配符SSL证书传送给浏览器,建立合法的SSL隧道,然后WEB模块接收到HTTP数据包时判断域名选择虚拟主机。 原理是OK的,不过只有在Windows 2003最新的补丁下,你才可能在IIS6.0上实现该方案,所有之前的IIS都是不支持的,你不得不使用上面的2个方法(不同的IP地址或者不同的端口号)。 如果仅有1个IP地址,采用方法2时,abc.domain.com 使用 443端口、xyz.domain.com使用1000端口,你会发现一个现象,由于SSL端口不区分域名,因此https://abc.domain.com还是https://xyz.domain.com都是指向abc.domain.com网站内容,而https://abc.domain.com:1000还是https://xyz.domain.com:1000都是指向xyz.domain.com网站内容的。当然这也有好处,你可以在abc.domain.com下放一个程序,程序判断一下域名,如果用户访问https://xyz.domain.com就马上跳转到https://xyz.domain.com:1000,不会有任何的安全警告。 选择证书我们推荐虚拟主机服务商采用:RapidSSL,因为它具有:
|
|