APVSSL加速技术应用指导书
APV SSL加速技术应用指导书ArrayNetworks ,目录一、什么是SSL 加速器 ........................................
APV SSL加速技术应用指导书
ArrayNetworks
,目录
一、什么是SSL 加速器 .................................................................................................................... 3
二、APV SSL功能介绍 .................................................................................................................... 4
2.1为提升性能而设计的功能 . .................................................................................................. 4
2.2为提升证书支持的灵活性而设计的功能。 . ...................................................................... 5
2.3为提供用户体验的功能 . ...................................................................................................... 7
2.4 APV SSL功能总结: . .......................................................................................................... 8
三、APV SSL解决方案总结 ............................................................................................................ 9
附件一、APV SSL加速的一个典型案例配置 ................................................................................ 9
1、为SSL 虚拟域名创建证书签发请求 . ................................................................................. 10
2、转发证书签发请求到认证中心 . ......................................................................................... 11
3、为SSL 虚拟域名配置客户端认证 . ..................................................................................... 13
4、为SSL 虚拟域名配置CRL . .................................................................................................. 13
5、为不具有强加密支持的客户端配置重定向 ...................................................................... 14
6、查看当前SSL 设置 . ............................................................................................................. 14
附件二:如何使用windows 2003 server的证书服务实现认证中心功能................................. 15
,随着电子商务应用的迅猛发展,为保证交易的机密性,对交易进行加密的需求越来越普遍,基于HTTP 的Web 应用越来越多的被加密的HTTPS 应用所取代。HTTPS 应用了Netscape 的完全套接字层(SSL )作为HTTP 应用层的子层。HTTPS 使用端口443,而不是象HTTP 那样使用端口80来和TCP/IP进行通信。SSL (Secure socket Layer)安全套接层协议主要是使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性。
一、什么是SSL 加速器
SSL 协议是对 HTTP 请求上的敏感数据加密的技术。握手、加密和解密过程由 Web 服务器处理。此过程会给 Web 服务器添加额外的工作负载。
由web 服务器提供传统的软件SSL 加速方式严重降低了web 服务器的性能,供应商提供了可改进 SSL 处理的硬件。这些硬件称为“SSL 加速器”或“SSL 终结器”(SSL Terminator) 。SSL 加速器截获加密的通信并执行 SSL 处理(握手、加密和解密)。加速器与 Web 服务器之间的通信通常是以明文形式进行的。通过使用专用硬件来执行 SSL 处理,您可以在站点上获得更好的性能。
浏览器向Web 站点发出 HTTPS 请求。SSL 加速器截获该请求并对其进行解密。然后以明文形式 (HTTP) 将该请求转发到 Web 服务器。当响应被返回时,SSL 加速器对响应加密,然后将其发送回浏览器。
Array 公司的APV 系列设备,正是这样一款性能卓越的SSL 加速器。通常情况下,Array SSL 数据处理流程为:
1、首先客户端与Array 设备上的SSL 虚拟主机建立一个加密的HTTPS 会话。
2、然后Array 设备与后台原始服务器建立一个非加密的http 会话。
3、数据在发给后台服务器前,SSL 虚拟主机解密客户端的请求后再发给后端服务器。
,二、APV SSL功能介绍
Array APV采用了高性能的硬件加速方式。并且支持端到端的安全,SSL 加速器到后台服务器之间也可以采用SSL 加密方式。SSL 不仅支持HTTPS 协议,还支持POPS 的安全email 传输方式。 SSL 标准支持如下:
⏹ 支持128位或192位的强密钥加密。
⏹ 支持SSLv3, TLSv1 (SSLv3.1)得SSL 版本。
⏹ 支持所有主流版本得加密密码。
⏹ 支持加速的1024位公钥。
SSL 服务器和客户端支持认证。并内置证书管理功能,支持客户端证书并且客户端证书可以在http 请求中的报头传递,支持证书链中的中间证书,支持动态上传证书吊销列表,其中证书支持如下:
⏹ 支持CSR 方式灵活的生成PEM(Base64)格式的外部证书。
⏹ 支持导入OpenSSL, Microsoft IIS, and Netscape的证书和私钥。
⏹ 证书可以导入OpenSSL/Apache SSL PEM format, Microsoft IIS (v4/v5)
native format, and Netscape iPlanet DB等格式。
支持基于客户密码强度的https 重定向,支持HTTP 报头中用X-Forwarded-For 来传递客户端的源地址信息用户审计。
APV SSL的功能可分为三大类,为提升性能而设计的功能,为提升证书证书的灵活性而设计的功能,和提高用户体验的功能。下面我们分别来看看每项功能的原理和配置。
2.1为提升性能而设计的功能
APV 设备采用了高性能的硬件加速方式,和独特的软件处理方式,支持X509 证书快速解析。X509证书快速解析是Array 公司正在申请专利得一种新的证书解析算法。
X509证书快速解析流程如下:
首先扫描整个x509证书,记录下证书中每个字段的偏移和内容长度。最后对于不同的需求,APV 可以根据记录的信息解析出需要的字段。
该功能对应的CLI 命令:
ssl settings verifymethod
为每个SSL 虚拟主机设置证书解析模式,stand 表示APV 设备将采用Openssl 来解析验证证书,而fast 选项表示在客户证书上系统将用快速解析模式。
OpenSSL 客户端证书解析是传统的SSL 解析算法,其主要缺点是:
A 、性能低 B 、支持的证书类型少
X509证书快速解析的优势:
A 、性能高
B 、支持更多的证书类型,包括BER ,DER 和CER 。
C 、支持一些不规则的证书,例如某些CN 太长的证书。
2.2为提升证书支持的灵活性而设计的功能。
1、支持CA 证书列表,支持基于SSL 的客户端认证
如果启用该功能,在客户端可以连接到SSL 虚拟域名之前,APV 要求每个客户端提供SSL 证书。配置命令为 APV(config)# ssl settings clientauth “www.example.com”
如果为SSL 虚拟域名启用了SSL 客户端认证功能,则必须提供一个受信CA 证书,使用它对客户端证书进行校验:
APV(config)# ssl import rootca “www.example.com”
该命令将提示用户粘贴一个PEM 格式的受信CA 证书。可以为SSL 虚拟域名配置多个受信CA 。也可以指定属主过滤:
APV(config)# ssl settings clientauth “www.example.com”“/C=cn/O=arraynetworks"
客户端所发送的证书的属主必须与所配置的过滤规则相匹配才能通过。过滤信息可以配置为C (国家),O (组织)和OU (组织单元),仅限于这三项。
APV 使用受信根证书对客户端证书进行认证,然后根据属主过滤规则决定允许(如果与规则相匹配)或拒绝客户端对SSL 虚拟域名的访问。对于这个例子,只有'C' 为 'cn' 并且 'O' 为 'arraynetworks' 的客户端证书才能通过。
APV 支持两种客户端认证方式:强制的和非强制的。客户端认证模式默认是强制的。在非强制模式下:
APV(config)# no ssl settings clientauth “www.example.com”
,当服务器发送一个证书请求到客户端时,如果客户没有匹配的证书,或者点“cancel ” 取消时,服务器将会允许客户连接到限制性的网络资源,而不是放弃这个SSL 连接。所有的网络资源如果想要公开给非认证模式的客户端,则需要执行下面这个命令:
APV(config)# http acl url
2、支持证书后传,为SSL 虚拟主机识别客户端证书
一个后台服务在处理客户的请求之前,需要客户端的证书。但是后台服务器不能自己识别分析一个完整的SSL 证书。APV 将客户端证书分解很多个字段,然后通过HTTPS URL 请求或HTTP 头信息的方式传递到后台服务器。
其配置命令为 [no]ssl settings certparse
例如: APV(config)# ssl settings cerparse “www.example.com”
3、支持动态上传CRL ,并且将CRL 列表存储在内存中,以提高读证书状态检查的速度
CRL (即证书撤消列表),可以通过HTTP 、FTP 或LDAP 定期从CRL 分发点获取CRL 文件,CRL 分发点最多可以配置10条。
示例:在一个HTTP 网页服务器上保存有CRL 文件(Array.crl ),希望每隔1分钟获取该文件。配置命令如下:
APV(config)#ssl settings crl www.example.com “http://www.crldp.com/Array.crl” 1 这样 Array TMX每隔1分钟会从www.crldp.com 上下载CRL 文件Array.crl 。
也可以从FTP 站点上下载CRL 文件:
APV(config)#ssl settings crl www.example.com “ftp://ftp.crldp.com/Array.crl” 1 也支持从LDAP 站点上下载CRL 文件:
ssl settings crl www.example.com “ldap://ldap.crldp.com/cn=array,dc=arraynetworks,dc=com” 1
4、支持基于客户密码强度的https 重定向
APV 提供重定向弱客户端(没有使用强加密的客户端)到另一个URL 的功能。指定可以接受的最弱强度,任何使用比此更弱的加密算法的客户端将被重定向到另一个URL 。
比如,希望将密钥长度小于168位的客户端重定向到另一个不同的站点
www.example2.com 。
配置命令如下:
,ssl settings minimum www.example.com 168 “http://www.example2.com”
2.3为提供用户体验的功能
APV 设备支持客户定制的SSL 错误页面,管理员可以制定不同的错误类型的页面。如果客户端认证失败,SSL 客户就能看到一个管理员定义的错误页面提示。错误页面必须是静态的html 类型,不能包含图片,flash 等。
主要优势:用户可以看到详细的、与SSL 错误相关的web 页面提示。
ssl import error
从管理员的远端主机将一个静态的自定义的错误页面导入到APV 的系统磁盘。管理员可以针对不同的错误页面类型定义不同的错误代码,这些页面必须为不包含图片及flash 动画的静态HTML 页面。
error_code 指明自定义错误页面的代码,错误页面的种类有六种,每一种错误页面对应一个错误代码,范围由901至906,如下所示:
901 服务器需要客户端证书,而客户端没有发送证书
902 SSL 客户端证书的签名验证未通过
903 SSL 客户端证书不被信任
904 SSL 客户端证书过期
905 SSL 客户端证书未生效
906 客户端证书被废除
url 指明远端主机的HTTP 或者FTP URL地址,用户由该地址获得静态错误页面。 例如,管理员在其主机上设置一个取名为error.html 的错误页面,其主机IP 地址为10.3.50.100,那么这条命令中的
ssl load error
将一个SSL 自定义错误页面加载至Array TM 系统内存中,这样,当客户端认证失败时,在SSL 客户端将显示该SSL 自定义错误页面。注意,加载之前需保证所加载的错误页面已经通过执行“ssl import error”命令被导入到Array TM 系统磁盘中。
,用户还可以通过设置一个配置项,在所有的HTTP 和HTTPS 请求中插入
“X-Forwarded-For ”头。这样可以使后台服务看到客户端的IP 地址。
打开此项之后,将向转发到后台服务器的HTTP 报头和URL 请求中插入主机IP 地址。
vs_name SLB 虚拟服务名称
mode 可以为 header, url 或者 all 。all 的意思是 HTTP 报头和 URL ,参数中将包含
客户端IP 地址。
customized name为在http header或URL 请求参数中的IP 地址定义了一个名称
关闭此项后,将禁止将向转发到后台服务器的HTTP 报头和URL 请求中插入主机IP 地
址。
2.4 APV SSL功能总结:
三、APV SSL解决方案总结
相对于SSL 加速器的解决方案,客户还可以采用在WEB 服务器上直接安装SSL 加速
卡的方式。但是随着应用服务器因业务扩容需要而不断增加。在每台服务器上都安装SSL 加速卡的方式严重浪费了用户的投资,并且无论是从管理的灵活性、维护的方便性,还是从性能的方面,Array 公司的APV SSL加速方案都更胜一筹,为客户提供了更好的投资回报率。
附件一、APV SSL加速的一个典型案例配置
下面,我们通过一个配置实例来看一下在APV SSL加速方式下,如何配置支持CRL 吊
销列表的客户端证书认证。
在本案中,使用“www.example.com ”作为SSL 虚拟域名,它与一个IP 地址为10.10.0.10、端口号为443的SLB 虚拟服务关联。
首先创建一个新的SSL 虚拟域名
第一步,使用一个SLB 的命令创建SLB 虚拟服务。
APV(config)#slb virtual https virtual1https 10.10.0.10 443
其中“virtual1https ”是新创建的SLB 虚拟服务。
SSL virtual Host: www.example.com
SLB virtual Host IP: 10.10.0.10
SLB virtual Host Port: 443
第二步,使用“ssl host”命令定义SSL 虚拟域名。
slb virtual https
tual_name>
“ssl host virtual”命令会为新配置的SSL 虚拟域名创建一个私有与公有密钥对,密钥长度是1024位。
APV(config)#ssl host virtual www.example.com virtual1https
下面开始APV SSL应用加速部分的配置过程
先配置SSL 虚拟域名,产生一个CSR (证书签发请求)发送到所选择的认证中心,认证 中心会发回一个签发后的证书,将该证书导入。本案例的认证中心为自己搭建的windows 2003 server的证书服务,关于windows 2003 server证书认证的操作,详细请参考此文档的附件二。
1、为SSL 虚拟域名创建证书签发请求
Array 设备提供了为已配置的SSL 虚拟域名创建密钥对和证书签发请求的功能,也可以创建测试证书用于测试或评估。第一步是使用“ssl csr
APV(config)#ssl csr www.example.com
We will now gather some required information about your ssl virtual host,
This information is encoded into your certificate
Two character country code for your organization (e.g. US): US
State or province: CA
Location or local city: San Jose
Organization Name: Example.com
Organizational Unit: Example.com
Email address of administrator: admin@example.com
产生以下输出:
-----BEGIN CERTIFICATE REQUEST-----
MIIB5TCANU4ANQAwgaQxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTERMA8GA1UEBxMIU2FuIEpvc2UxFDASBgNVBAoTC0V4YW1wbGUuY29tMRQwEgYDVQQLEw tFeGFcGxlLmNvbTEnMCUGA1UEAxMec3NsLXRlc3QucHBiLmFycmF 厂商
bmV0d29ya3MubmV0MSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLmNvbTCBnzA NBgkqhkiG9w0AQEFAAOBjQAwgYkCgYEApk18ozLXGEpJS69BvtfNLcBEjoO82 QWRtH