SSL虚拟主机安全方案
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虚拟主机安全方案的更多相关文章
- Centos 7 环境下,如何使用 Apache 实现 SSL 虚拟主机 双向认证 的详细教程:
1. testing ! ... 1 1 原文参考链接: http://showerlee.blog.51cto.com/2047005/1266712 很久没有更新LAMP的相关文档了,刚好最近单位 ...
- 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理
一.搭建Nginx服务器 目标: 在IP地址为192.168.4.5的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能: 1> SSL加密功能 2> 设置Ng ...
- 基于Nginx的SSL虚拟主机
通过私钥,证书对站点www.test.com的所有数据加密,实现通过https访问www.test.com 环境说明: 源码安装Nginx时必须使用--with-http_ssl_module参数,启 ...
- 十八.搭建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. ...
- nginx篇最初级用法之SSL虚拟主机
注意:在源码安装nginx时必须要使用--with-http_ssl_module参数启动加密模块. openssl genrsa > cert.key //使用openssl自己签发私钥 o ...
- SSL虚拟主机
1.生成公钥与私钥 [root@proxy ~]# cd /usr/local/nginx/conf [root@proxy ~]# openssl genrsa > cert.key //生成 ...
- 四、SSL虚拟证书
沿用练习三,配置基于加密网站的虚拟主机,实现以下目标: 域名为www.c.com 该站点通过https访问 通过私钥.证书对该站点所有数据加密 4.2 方案 源码安装Nginx时必须使用--with- ...
- Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机
Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...
- HTTPS-SSL/TSL与SNI的关系以及同IP多域名虚拟主机的SSL/TSL认证
早期的SSLv2根据经典的公钥基础设施PKI(Public Key Infrastructure)设计,它默认认为:一台服务器(或者说一个IP)只会提供一个服务,所以在SSL握手时,服务器端可以确信客 ...
随机推荐
- LeetCode142:Linked List Cycle II
题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. ...
- ES6 学习笔记之四 对象的扩展
ES6 为对象字面量添加了几个实用的功能,虽然这几个新功能基本上都是语法糖,但确实方便. 一.属性的简洁表示法 当定义一个对象时,允许直接写入一个变量,作为对象的属性,变量名就是属性名. 例1: , ...
- C# Socket 实现WebSocket服务器端
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- asp.net 进行发送邮箱验证
利用发送邮件验证码进行注册验证 需要引用using System.Net.Mail;命名空间 #region /// <summary> /// 发送邮件 /// </summary ...
- vs2017新建.netcore相关项目提示"未检测到任何.NET Core SDK"或打开.net core 相关项目Web层总是未能正常加载
近来vs2017出现一个非常怪的现象,之前新建.net core相关项目好好的,现在出现问题,如下: 解决办法,是更新vs2017,界面如下:
- BitAdminCore框架更新日志20180529
索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/coo ...
- Openlayers地图量算功能
http://openlayers.org/en/latest/examples/measure.html?q=measure 按官网的例子来就行,新建对象时注意加上命名空间 var vect ...
- Mysql-基础+安装指南
安装指南: https://www.cnblogs.com/majj/p/9160383.html 小马哥 下载完后初始化操作数据库: 1. 将文件放在 : G:\软件\mysql-8.0.15-w ...
- Service的使用
一.Service的适用范围 1.本地服务(Local Service): 应用程序的内部(单个APP) startServcie stopService stopSelf stopSelfRe ...
- Flask从入门到精通之flask扩展
Flask被设计成可扩展形式,因此并没有提供一些重要的功能,比如数据库和用户认证,所以开发者可以自由选择最适合程序的包,或者按需求自行开发.社区成员开发了大量不同用途的扩展,如果这还不能满足需求,你还 ...