随着移动互联网,网银支付等等的普及,越来越多的应用开始重视私密性和安全性,最常见的就是把原有基于明文传输的HTTP调整为加密的HTTPS方式;实现这种方式的最常用的手段也是购置第三方发布的域名证书,部署到后台每台服务器上。
但是SSL的加密/解密是最消耗服务器资源的应用,HTTP到HTTPS部署后很可能会发现服务器的性能和处理能力大幅下降;而专用的应用交付设备通常内置硬件的SSL加速卡,可以高效的处理SSL加密流量。一个简单的对比动画图如下:
HTTPS加速/SSL卸载的目的和用途
将在服务器上的证书加解密的功能迁移到负载均衡设备上
主要优势有
- 减低服务器负载,SSL处理非常消耗服务器的性能
- 提升SSL处理能力;应用交付设备采用专用的SSL卸载硬件芯片实现
- 降低管理员操作复杂性;无需管理和配置多个服务器的证书;只需要在前端负载均衡设备上实现即可
- 提升应用安全性;将加密的HTTPS解密为明文的HTTP后,可根据请求/响应内容等设置多种策略
证书的种类
客户需要向提供证书的第三方机构申请,例如GeoTrust, VeriSign, Thawte等授权证书机构
证书简单的区分有2种分类方式
- 单一域名证书;例如 www.example.com
- 通配符证书;例如 *.example.com 更贵
-
普通型证书 例如
支付宝: 普通证书
- 增强型(EV SSL) 证书 更贵, 例如
- 工商银行网银: 增强型证书;显示为绿色,同时显示网站名称
收到的证书是什么样子的
以GeoTrust为例;证书通常通过邮件转发的;通常包括网站证书; 中级证书和交叉证书;
另外还有证书的密钥Key(请妥善管理密钥,这是非常机密的重要文件)
如何将证书导入到应用交付设备中
每个应用交付设备的具体配置方式可能不同,此处以A10网络的AX设备为例
证书文件的准备
使用文本编辑器,例如UltraEdit
1:将密钥文件保存为key.PEM
2:网站SSL证书保存为cert.PEM
3:将交叉证书和中级证书保存于同一个文件中,例如cert-chain.PEM
注意交叉证书先;中级证书后
证书文件的导入
在A10设备的配置模式中, 在服务>SSL管理中 分别导入上一部定义的3个文件:
导入证书cert.pem并根据需求命名,例如mail2012
导入证书链cert-chain.pem并根据需求命名,例如mail2012-chain
导入私钥key.pem并根据需求命名,例如mail2012-key
至此证书导入完毕。
证书文件的配置和应用
在证书准备完毕后,需要将其关连配置后再启用;
首先创建终端的SSL模板,在配置模式>服务>模板中
最后一步,即将配置的终端SSL模板应用于提供应用的VIP端口下,通常为443端口,注意端口类型选择为https
至此配置结束。
启用证书后的功能验证
配置结束后,在正式应用对外发布前,可以进行内部的测试验证;
例如域名为www.example.com在应用交付设备上对应的VIP 地址为1.1.1.1;那么可以在DNS发布前通过修改本机的hosts域名解析先进行测试验证后再对外发布;测试时浏览器不再提示非法的证书,基本就可以说明证书部署是成功的。
需要注意的是:在极个别的案例中,我们发现有用户在应用层面(例如web服务器的响应回报中)写定了http的方式(例如下图)
此时是有可能造成https访问存在问题的,可以通过后台程序的修改;或者使用应用交付设备的7层内容更替(例如A10设备的aFleX)功能在后台程序不变的情况下智能修改返回给用户的内容来实现,这是题外话,我们以后再接着谈。
本文转自 virtualadc 51CTO博客,原文链接:
http://blog.51cto.com/virtualadc/1109509