SSL虚拟主机安全方案

随着虚拟主机技术的发展,功能越来越丰富,已经不仅仅只是满足个人网站的需要,越来越多的小型电子商务网站也采用了虚拟主机来建站,如何为这些商户提供经济、方便的SSL解决方案,成为虚拟主机供应商的业务新增长点。

技术分析

为什么我不能在相同IP地址下多个域名的虚拟主机上使用SSL?

这个问题十分专业,有些像“先有鸡还是先有蛋”的问题。SSL协议层是在HTTP协议层下面的,当SSL连接建立时,SSL模块在Web模块之前和 浏览器进行通讯并交换证书、建立加密隧道。众所周知,Web服务器是通过HTTP数据包中的”Host”字段来区分虚拟主机的。而SSL模块在把服务器证 书发送到浏览器时,还没有收到任何关于HTTP的数据包,更不知道虚拟主机的域名,因此SSL模块只能固定的将一张SSL证书发送到浏览器,而不能根据域 名有选择性的发送证书。因此,您无法在一个IP地址的默认SSL 443端口下为多个虚拟主机配置多张证书。

由于一个IP与一个端口号只能对应一张证书,因此我们可以采用以下方式来解决:

1、为需要SSL加密的虚拟主机配置不同的IP地址,端口号都使用443。例如: www.domain1.com 的SSL使用 202.96.101.1:443 www.domain2.com的SSL使用 202.96.101.2:443,通过 https://www.domain1.com 和 https://www.domain2.com 访问这2个SSL网站了

2、如果只有一个IP地址,可以为多个网站配置不同的SSL端口。例如: www.domain1.com 的SSL使用 202.96.101.1:443 www.domain2.com的SSL使用 202.96.101.1:1000,通过 https://www.domain1.com 和 https://www.domain2.com:1000 访问这2个SSL网站了

如果多个虚拟主机是1个主域名下的多个子域名,情况发生了转变,因为你可以申请通配符SSL证书。

例如: 有2个虚拟主机 abc.domain.com、xyz.domain.com,你申请一张 *.domain.com的证书,按照前面所说的原理,2个虚拟主机都使用同一个IP和默认的443端口,当浏览器访问IP:443端口时,SSL模块把 通配符SSL证书传送给浏览器,建立合法的SSL隧道,然后WEB模块接收到HTTP数据包时判断域名选择虚拟主机。

原理是OK的,不幸的是你无法按照这个原理对IIS进行配置,IIS不支持SSL端口配置域名。如果仅依靠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,不会有任何的安全警告。

幸运的是,通过SSL反向代理服务器,你可以解决这个问题。就是使用第三方的SSL模块来替代IIS处理SSL加密,将证书安装反向代理服务器中, 浏览器访问SSL反向代理服务器,然后反向代理服务器使用HTTP协议访问你的Web服务器。你可以选择SSL反向代理硬软件有: 1、支持SSL的负载均衡器,如F5、ArrayNetworks

2、使用ISA Server 2004软件。

3、使用免费的Squid软件。

4、使用免费的Stunnel软件。
5、使用PortTunnel软件。

推荐SSL证书

我们推荐虚拟主机服务商采用:(RapidSSL),因为它具有:

• 高性价比: RapidSSl证书价格便宜,考虑到租用虚拟主机的客户对价格相对敏感,这款证书是最有吸引力的。

• 申请便捷: 通过GeoTrust专有的在线申请技术,只验证域名所有权,可在10分钟内获得证书签发,这不仅可以帮助虚拟主机服务商降低人工成本,而且可以实现用户申请流程自动化。

• 安装简单,方便快捷;

• 兼容性强: 兼容99%以上的浏览器和Web服务器

SSL虚拟主机安全方案的更多相关文章

  1. Centos 7 环境下,如何使用 Apache 实现 SSL 虚拟主机 双向认证 的详细教程:

    1. testing ! ... 1 1 原文参考链接: http://showerlee.blog.51cto.com/2047005/1266712 很久没有更新LAMP的相关文档了,刚好最近单位 ...

  2. 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理

    一.搭建Nginx服务器 目标: 在IP地址为192.168.4.5的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能: 1> SSL加密功能 2> 设置Ng ...

  3. 基于Nginx的SSL虚拟主机

    通过私钥,证书对站点www.test.com的所有数据加密,实现通过https访问www.test.com 环境说明: 源码安装Nginx时必须使用--with-http_ssl_module参数,启 ...

  4. 十八.搭建Nginx服务器、配置网页认证、基于域名的虚拟主机、ssl虚拟主机

    配置要求: client:192.168.4.10 proxy:192.168.4.5(eth0) 192.168.2.5(eth1) web1:192.168.2.100 web2:192.168. ...

  5. nginx篇最初级用法之SSL虚拟主机

    注意:在源码安装nginx时必须要使用--with-http_ssl_module参数启动加密模块. openssl genrsa > cert.key  //使用openssl自己签发私钥 o ...

  6. SSL虚拟主机

    1.生成公钥与私钥 [root@proxy ~]# cd /usr/local/nginx/conf [root@proxy ~]# openssl genrsa > cert.key //生成 ...

  7. 四、SSL虚拟证书

    沿用练习三,配置基于加密网站的虚拟主机,实现以下目标: 域名为www.c.com 该站点通过https访问 通过私钥.证书对该站点所有数据加密 4.2 方案 源码安装Nginx时必须使用--with- ...

  8. Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机

    Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...

  9. HTTPS-SSL/TSL与SNI的关系以及同IP多域名虚拟主机的SSL/TSL认证

    早期的SSLv2根据经典的公钥基础设施PKI(Public Key Infrastructure)设计,它默认认为:一台服务器(或者说一个IP)只会提供一个服务,所以在SSL握手时,服务器端可以确信客 ...

随机推荐

  1. codis服务部署前的操作及初始化

    1.检查服务器ipv6模块是否打开,如果打开需要禁用ipv6,防止codis-dashbord连接zookeeper失败. 因为不确定codis-dashbord服务连接zookeeper使用ipv4 ...

  2. 在Windows Server 2012 R2域环境中禁用(取消)密码复杂策略

    windows server 2012域环境默认启用密码复杂策略,例如: 至少有六个字符长,包含以下四类字符中的三类字符:英文大写字母(A 到 Z),英文小写字母(a 到 z),10 个基本数字(0 ...

  3. BlangenOA项目总结

    1.使用EF,当返回的是IQueryable<T>类型,延迟加载. 2.增删改查 分页(页码,页大小,总记录数,是否升序)(两个lambda表达式,一个筛选规则,一个是排序规则(可以选择类 ...

  4. BitAdminCore框架更新日志20180516

    前言 经过多次的重构,目前BitAdminCore框架已经基本上稳定,近期对代码进行多次重构,让代码保持更整洁. 为促进框架的推广,更好的实现价值分享,即日起推出更新日志系列,每次更新内容进行描述. ...

  5. H5实现页面内跳转页面

    <!DOCTYPE html><html><body> <iframe src="/example/html/demo_iframe.html&qu ...

  6. day70 csrf简单用法 &Django ContentType

    一. 什么是跨站请求伪造 CSRF def transfer(request): if request.method =='POST': from_ =request.POST.get('from') ...

  7. Python面向对象(类的成员之方法)

    day24 类的成员之方法 - 普通方法,保存在类中,由对象来调用,self > 对象 - 静态方法,保存在类中,由类直接调用 - 类方法,保存在类中,由类直接调用,cls > 当前类 c ...

  8. PHP中日期函数

    1,转化为时间戳函数:strtotime() 本函数接受一个包含美国英语日期格式的字符串并尝试将其解析为Unix时间戳,其值相对于now参数给出的时间,如果没有提供此参数则使用系统当前时间. < ...

  9. VSCode保存插件配置并使用 gist 管理代码片段

    setting sync 保存配置 由于公司和家里都使用 VSCode 作为主要编辑器,同步配置是最紧要的.VSCode 提供了setting sync插件,很方便我们同步插件配置.引用网上教程: 在 ...

  10. Python中线程与互斥锁

    了解之前我们先了解一下什么是多任务? 概念: 几个不同的事件在同时运行就是多任务, 这样的话, 我们有牵扯到了真的多任务, 假的多任务; 并行: 真的多任务, 通过电脑的核数来确定 并发: 假的多任务 ...