1、F5 BIGIP-LTM SSL 应用加速技术白皮书 2007-10-02 16:50:59 作者: Metoo 来源: F5 Netoworks 浏览次数:13 文字大小:【大】【中】【小】简介:F5 BIGIP-LTM SSL 应用加速技术白皮书 1 SSL 加速原理 1.1 SSL 简要介绍 SSL 是被设计用来保证信息安全的一个协议,它依赖于可靠的 TCP 协议来传输数据。它的特点之一是独立于上层的应用层协议(如: HTTP,FTP,TELNET .关键字:SSL 加速 F5 BIGIP 1 SSL 加速原理1.1 SSL 简要介绍SSL 是被设计用来保证信息安全的一个协议,它依赖于可
2、靠的 TCP 协议来传输数据。它的特点之一是独立于上层的应用层协议(如:HTTP,FTP,TELNET 等),这些应用层协议可以透明使地用 SSL 协议。SSL 协议可以协商一个对称加密算法和会话密钥,同时可以在通信之前认证服务器的合法性。SSL 协议提供了一种“管道式安全”,它具有三个特征:管道是保密的,保密性是通过使用加密技术来保证的,在通过一个简单的握手过程之后获得一个共同的密钥,作为对称加密算法的密钥。管道是认证过的,服务器端总是需要把自己的证书递交给客户端,以便客户端对服务器进行认证。服务器可以选择是否需要客户端递交证书。管道是可靠的,消息的传输包含了消息完整性检查。SSL 协议实际
3、上由两个协议构成,位于下面的一层为 SSL 记录协议(SSL Record Protocol),其上为 SSL 控制协议(SSL Control Protocols),SSL 记录协议用于封装上层发送和接收的所有数据,当然包括 SSL 控制协议的数据, SSL 控制协议包含:SSL 握手协议(SSL Handshake Protocol)SSL 密钥交换协议(SSL Change Ciphers Specification)SSL 报警协议(SSL Alert Protocol) SSL 的握手过程是建立 SSL 的主要加密和安全参数的过程,它是 SSL 的控制协议执行的控制功能。握手过程体现
4、在浏览器使用 HTTPS 访问 WEB 服务器时,包括以下步骤:1 浏览器向安全 WEB 服务器发出一个 HTTPS 的请求,比如:https:/ 。2 该 WEB 服务器将它的证书递交给浏览器的 SSL 模块。3 浏览器检查服务器递交的证书的有效性,比如有效日期和证书的签名等。如果该证书不是被一个浏览器已经信任的发证结构(CA)签发的证书,浏览器将弹出一个对话框来提示用户是否信任该 WEB 站点证书。如果用户选择不信任该证书,浏览器会选择自动中止该连接。4 浏览器将把从 WEB 站点证书里取得的站点名称和浏览器的 URL 里的域名相对照,如果相符,浏览器将认为站点为真正的站点。5 浏览器将自
5、己支持的一系列算法发送给服务器。6 如果服务器需要客户端递交证书,浏览器将把自己的证书发送给服务器,服务器检查递交的证书,并且检查该证书是否为自己已经信任的发证机构(CA)发放的证书。如果不是,服务器将自动中止该次连接。7 服务器端选择自己和客户端共同支持的加密算法,然后发送给客户端。8 浏览器产生一个会话密钥,然后把该密钥通过服务器的公钥加密后传给服务器。9 服务器接收到该加过密的会话密钥后用自己的私钥解密,得到会话密钥的明文。10 客户端和服务器使用刚才协商的会话密钥对应用层的数据进行加解密,对传输的数据进行安全保护。典型的 SSL 应用部署如下:1.2 BIGIP SSL 加速在 SSL
6、 处理过程中,所有的传输内容均采用加密算法处理。其中最重要的两个部分为 SSL 握手时交换秘钥的非对称加密和数据传输时的对称加密。在现有的系统中,通常非对成加密采用 1024 位的密钥进行加解密,因此对服务器的 CPU占用率非常高。在一台最新型号的双 Xeon 服务器上,大约每秒钟 400 次非对称加解密就能导致 CPU 占用率 100%。同时对称加密通常采用 128 位,最高 256 位加密的加解密也会导致服务器 CPU 占用率居高不下,同样的服务器 SSL 流量大约能达到 150Mbps。因此当我们在部署 SSL 应用时,必须考虑到以下参数:TPS: Transection Per Sec
7、ond,也就是每秒钟完成的非对称加解密次数Bulk: SSL 对称加解密的吞吐能力,通常以 Mbps 来进行衡量。当 SSL 的客户端压力超过 400TPS 时,单台服务器就很难处理请求了。因此,必须采用SSL 加速设备来进行处理。BIGIP-LTM/ACC 系列可从最低 2000TPS 到 64000TPS 实现全硬件处理 SSL 非对称加密和对称加密流量。其实现的结构如下:所有的 SSL 流量均在 BIGIP 上终结,BIGIP 与服务器之间可采用 HTTP 或者弱加密的 SSL 进行通讯。这样,就极大的减小了服务器端对 HTTPS 处理的压力,可将服务器的处理能力释放出来,更加专注的处理
8、业务逻辑。在 BIGIP 可处理单向 SSL 连接,双向 SSL 连接。并且可同时处理多种类型和多个应用的SSL 加解密处理。采用 BIGIP 实现 SSL 加速的性能如下表:在 BIGIP 新的硬件平台 BIGIP 8400 和 8800 上,SSL 加速的处理能力还会有成倍的提高。由于采用了独立的安全 NP 硬件加速 SSL 流量,基本上对于 SSL 的流量可实现“零”CPU 占用率。因此,当采用内置模式时,SSL 加解密动作基本不会影响到负载均衡的处理能力。1.3 BIGIP SSL 加速产品系列产品型号 配置 功能BIGIP 3400-ACC 8 个 10/100/1000M 电口,2
9、 个可选光纤接口 自带 5000TPS SSL加速 License,带宽控制,500Mbps HTTP 压缩,内存 Cache BIGIP 1500-LTM 4 个 10/100/1000M 电口,2 个可选光纤接口 自带 100TPS SSL加速 License,服务器负载均衡,最大支持 2000TPS,500Mbps SSL BulkBIGIP 3400-LTM 8 个 10/100/1000M 电口,2 个可选光纤接口 自带 100TPS SSL加速 License,服务器负载均衡,最大支持 5000TPS,1Gbps SSL BulkBIGIP 6400-LTM16 个 10/100/
10、1000M 电口,4 个可选光纤接口 自带 100TPS SSL 加速 License,服务器负载均衡,最大支持 15000TPS,2Gbps SSL BulkBIGIP 6800-LTM16 个 10/100/1000M 电口,4 个可选光纤接口 自带 100TPS SSL 加速 License,服务器负载均衡,最大支持 20100TPS,2Gbps SSL BulkBIGIP 8400-LTM12 个 10/100/1000M 光/电口,2 个可选 10G 光纤接口 自带 100TPS SSL 加速 License,服务器负载均衡,最大支持 22000TPS,2.5Gbps SSL Bul
11、k除 BIGIP 3400-ACC 之外,其他的产品系列均可根据客户需求增加 SSL 处理能力和选配其他功能模块,包括 HTTP 压缩、内存 Cache、带宽控制、 IP V6 等。2 主要实现功能2.1 核心功能客户机到 BIGIP 端到端加密通道 BIGIP 采用标准的 SSL 加密通道协议。可以和标准的浏览器配合,支持 SSL/TLS 各版本的协议标准。在客户端和 BIGIP 之间建立安全的 SSL/TLS 加密通道。保证在通道内传输的 HTTP 请求的安全性,实现对应用安全的完整保护。证书认证功能在 BIGIP 中可导入 X509 证书,可实现单向认证、双向认证。BIGIP 可以提供给
12、客户端自身的证书以供客户端认证。也可以要求客户端提交证书进行验证。确保 SSL 交易的完整性和不可抵赖性。服务器 SSL 传输通常情况下,客户端与 BIGIP 采用 SSL 连接,BIGIP 与后台服务器采用 HTTP 连接。在某些安全要求较高的场合下,需要 BIGIP 与后台服务器也采用 HTTPS 加密传输,以保证数据传输的全路径安全加密传输。BIGIP 可支持与后台服务器多种加密算法的连接方式。资源访问控制在 BIGIP 中可对客户端可访问资源和不可访问资源进行灵活的定义访问权限控制。可通过客户端是否有证书、Cookie、访问的 URL 等进行判断,然后确定用户是否有对该资源的访问权限。
13、将不安全和越权访问直接进行控制。证书信息透传由于信息安全的完整性要求,当服务器端在收到用户请求时,需要对客户端进行再次确认。以确认用户是通过安全网关访问。BIGIP 可以将客户端证书进行解析,将服务器所需要的所有信息以 HTTP URI 参数或者 HTTP Header 等方式传递给后台服务器,以提供服务器二次认证的信息。多应用系统支持在 BIGIP 可以支持不限数量的应用系统,并且可以同时支持单向、双向认证方式。便于 SSL 加解密的集中控制。同时,BIGIP 还可以同时支持非 HTTPS 应用如 HTTP、SMTP、POP3、DNS 等应用的集群方式。提供用户最大的灵活性和安全性。完善的日
14、志输出在 BIGIP 上可提供多种类型的日志输出:用户访问日志:可以记录用户的所有访问 HTTP 请求,并将其存放在 BIGIP 或者远端 Syslog 服务器上。错误信息日志:用户未提交证书、提交证书过期或已吊销等,均将被 BIGIP 记录在日志中,以提供审计查询。管理员操作日志:将管理员的所有操作均记录下来,以提供审计查询或系统配置回溯。系统日志:BIGIP 自身的系统运行状态,后端服务器的 Down/UP 状态等。安全加密级别控制BIGIP 可支持以下加密协议:SSLv2TLSv1SGC/设置RFC 2246 中描述的所有标准协议扩展和密码AES(在 RFC 3268 中进行了描述)从现
15、有的 128 位加密方式一直到 AES 256 位的加密算法, BIGIP 均可提供全硬件加速支持用户自定义功能BIGIP 内置有 iRules 可编程控制语言,具有 50 多个事件、200 多个函数,允许用户对流量进行任意处理。典型的诸如客户端三次握手完成、SSL 握手、客户端证书提交、SSL握手完成等 BIGIP 均有对应的事件处理。并且丰富的函数和过程也可以对数据进行灵活处理,比如查找、比对、修改等,然后可以根据查找比对的结果作出相应的处理。2.2 附加功能服务器负载均衡和健康检查考虑到后台服务器所承受的压力和冗余性,BIGIP 可以在完成 SSL 加解密的同时,对后台服务器进行负载均衡
16、,同时检查服务器的真实可用性。以确保交易的不间断性。服务器慢启动和停机维护当后台有多台应用服务器,新节点加入或者恢复时,BIGIP 可以通过慢启动方式来保证服务器的压力逐步增加,以避免新服务器压力过载。当服务器需要停机维护时,BIGIP 可以允许当前的用户连接不中断,而新的请求分配到其他服务器上。保证当前用户访问的不中断,这样,大大减小了维护的压力。应用兼容性BIGIP 可与多种应用系统进行配合,具有极高的兼容性。现有的系统包括 IIS、Apache、TomCat、WebLogic、WebSphere 等系统 BIGIP 都可以实现无缝的配合。多结构支持BIGIP 可支持负载均衡内置 SSL
17、加速方式以实现应用的统一管理,简单维护。也可以支持 SSL 加速外挂方式以实现系统良好的扩充性和高性能。灵活的 CRL 验证机制BIGIP 可支持 3 种方式的 CRL(用户吊销列表)验证文件方式:将 CRL 以文件方式加载到 BIGIP 内存中。OCSP:通过 OCSP 认证网关进行客户端证书认证。CRLDP:通过 CRL Distributing Point 去读取 LDAP 或者 HTTP 服务器上的 CRL 列表。透明 SSL 模式支持在透明 SSL 加速模式中,客户端通过域名 HTTPS 直接访问后台的 WEB 服务器。在流量通过 BIGIP 时, BIGIP 截获 HTTPS 流量
18、,并对其进行解密,然后将请求发送到后端服务器的 HTTP 端口。在服务器处理完成后,将页面内容返回给 BIGIP,由 BIGIP 进行加密后返回给 Client 端。这样对于客户端来说根本感觉不到 BIGIP 的存在。客户端 IP 透传BIGIP 可以不改变客户端源地址直接将请求发送到服务器上,以提供服务器日志和审计需要,也可以将客户端源地址插入到 HTTP Header 中提供给后台的服务器进行处理。多 CA 支持在 BIGIP 上的同一个虚拟服务器中,可以支持多个 CA 所颁发的客户端证书认证、 CRL 访问控制和客户端证书选择。多 CA 支持通常用于用户在不改变原有系统的情况下,加入新的
19、 CA 认证体系,而不让原有的用户感觉到任何改变。实现系统的透明迁移。应用优化在 BIGIP 中拥有许多专利技术的应用优化功能,包括 TCP Express、HTTP 压缩、HTTP缓存、访问链接聚合等。一方面提高了用户的响应速度,另一方面减小了服务器端的压力。同时,HTTP 压缩等功能还减小了带宽的占用,直接为企业减小了带宽租借费用。带宽控制BIGIP 灵活的七层带宽控制模块,可灵活的根据用户的特征、访问的应用等进行应用的优先级处理,保证关键业务的带宽使用。2.3 产品特性专用硬件平台提供高性能 SSL 加速BIGIP 内置高速安全 NP 硬件处理芯片,可完全支持 SSL 握手时的非对称加解
20、密和 SSL数据传输时的对称加解密。实现 CPU 的”零”占用率。透明和兼容性BIGIP 默认工作在透明模式,在服务器端接收的 HTTP 请求看上去全部来源于真实的客户端。BIGIP 极高的兼容性,保证了和后台的多种业务系统对接时的易于部署。易用性BIGIP 具备 iControl 二次开发接口,用户可灵活实现 BIGIP 上数据的采集和设备控制。简洁的配置界面和对象式的 Profile 定义也使管理变得轻松和简单。高安全性强大的硬件平台和高效的软件设计,保证在 BIGIP 后台的服务器避免 DDOS 攻击。ASM模块的加入进一步保证了用户的系统免受各种针对 HTTP 应用的攻击手段。高可扩展
21、性由于负载均衡和 SSL 加速功能的合二为一,BIGIP 可以进行多种组合方式,确保后台服务的高可扩展性和自身的高可扩展性。高可靠性完善的负载均衡算法、服务器健康检查以及自身的高可用性设计,都充分保证了系统的高可靠性。3 BIGIP SSL 加速典型部署结构3.1 内置 SSL 加速的结构:如图:HTTPS 流量到达 BIGIP 上的 VS,由 VS 处理之后转换成 HTTP 流量直接发往服务器,服务器处理完成后返回给 BIGIP,然后由 BIGIP 加密后返回给用户。3.2 外挂 SSL 加速器的结构:通常情况下,考虑到系统的可扩展性,可采用独立的设备分别实现服务器的负载均衡和 SSL 加速
22、,同时负责服务器负载均衡的 BIGIP LTM 也实现了 SSL 加速用 BIGIP LTM 的负载均衡。建议的系统结构图如下:在外挂方式下,通常加速器直接连接在 BIGIP 上,这样可以节省核心交换机的端口,减少数据包的往返传输。根据实际情况的不同,也可将加速器直接连接在主干交换机上。但无论如何连接,实际的数据流程如下:上下的两台 BIGIP LTM 实际为同一台设备。采用外挂方式下,HTTPS 流量首先到达实现负载均衡功能的 BIGIP LTM,然后由 BIGIP LTM 分配到多台用于 SSL 加速的 ACC3400 或 BIGIP LTM 上,在 SSL 加速器处理完成后,将 HTTP
23、 流量返回到负责负载均衡的 BIGIP LTM,并由 BIGIP LTM 发往后端的服务器,再后端服务器处理处理完成后原路返回。4 SSL 的认证模式4.1 单向认证模式在采用单向认证时,主要是客户端验证服务器端是否合法。在建立 SSL 握手的时候,服务器将其证书传送给客户端进行验证。客户端主要验证有三个方面:1、 服务器证书是否在有效时间内即服务器证书的有效时间与当前时间相比较,如果过期,则认为该证书已经失效。2、 服务器证书中的域名是否与用户访问的域名一致即客户端访问的域名,如在浏览器中填入:https:/,则访问的域名为 。服务器的证书中的域名必须与此域名一致。3、 服务器证书是否由浏览
24、器认可的根证发放在主流的浏览器软件包括 IE 和 Mozila 的版本中,均已经内置了全球主流的 CA 系统的根证书。用户也可以自行安装可信任的根证书,比如 CFCA、信安以及各地 CA 中心的自建系统的根证书。浏览器将使用内置的根证书对服务器返回的服务器证书进行验证。如果验证全部通过,则 SSL 握手成功,浏览器将直接发送 HTTP 请求到服务器请求内容。如果任何一项没有通过,浏览器则会弹出错误提示,由用户选择是否继续进行。该提示如下:其中,黄色带惊叹号的标志为验证失败。绿色标志为验证成功。单向认证的流程如下:4.2 双向认证模式在双向认证模式下,除客户端验证服务器端是否合法外,服务器端也需
25、要验证客户端是否为合法用户。服务器端需要安装颁发客户端证书的 CA 的根证书和中间证书,要求客户端提交客户端证书,并通过已经安装的根证书和中间证书对客户端证书进行逐级验证。以确定客户端是否为合法用户。当客户端连接一个双向认证模式的 VS 时,除了客户端验证服务器端是否安全外,还需要进行以下步骤:1、 客户端弹出证书选择框,该证书选择框内列出服务器端,也就是 BIGIP 上所支持的 CA 所发布的证书。2、 客户端选择证书然后提交。3、 BIGIP 验证客户端提交的证书是否由所信任的 CA 所发布。4、 如果配置了证书吊销列表,BIGIP 将根据客户端证书中提供的 CRL 发布点,验证客户端提交
26、的证书是否已经被作废。如果作废或者证书已经过期,则 BIGIP 将拒绝该用户登录。双向认证的流程如下:现在国内的主流 CA 系统为 CFCA 和信安的证书系统。下面就针对这两种证书体系进行分别介绍。4.2.1 CFCA 系统CFCA 为银行业的官方证书机构,在国内有较多的用户。CFCA 的证书系统中,分为 Entrust CA 和新的国产 CA 两个系统。其中 Entrust CA 为 3 级结构,其结构如下:国产 CA 为两级结构,结构如下:在对 CFCA Client 证书进行验证的时候,BIGIP 需要进行多级认证。 BIGIP 现支持的最大多级认证深度为 9 级。以 Entrust C
27、A 三级证书为例,其验证流程如下:验证 Client Certificate 是否由 PCA 认可验证 PCA 是否由 OCA 认可验证 RCA 是否是自签发证书并存放在 BIGIP 的可信任证书列表(Trusted Authorities)中。如果三级认证均通过,则验证该客户端为合法客户。4.2.2 信安系统信安的系统为单级证书体系,在各大银行通常是自建 CA。所以通常情况下根证书均为银行特有,在配置时需要向客户配合提供根证书。在配置信安系统的时候,只需要将提供的根证书配置为 Trusted Authorities 即可。注意根证书必须为 PEM 格式,经常可能能拿到手的证书为 DER 格式
28、。5 基本功能及配置5.1 证书的导入5.1.1 服务器证书的生成和导入如果由 BIGIP 来生成服务器证书 需要通过以下步骤。选择 Local Traffic-SSL Certificates-Create注意 Common Name 一定要设置为准备用来使用的域名。点击 Finish 继续:点击 Download Xin_an_server.csr 到本地硬盘,然后把 csr 文件提交给 CA,就可以得到相应的证书了。完成后,在 SSL Ceritificates 的页面中能看到一个只有 key 的条目:在从 CA 得到证书后,导入到相应的名字即可。如果已经具备服务器证书和私钥需要通过以下
29、步骤进行导入选择 Local Traffic-SSL Certificates -Import选择导入的项目通常先导入证书:在导入证书成功后,再点击导入的证书然后导入相应的 key 文件。5.1.2 根证及中间证书的导入对于单级证书模式,将 PEM 格式的根证直接导入即可:对于多级证书模式,需要将在整个链上的多个证书进行 Boundle。Boundle 的方式为将多个证书粘贴拷贝到一起,然后全部导入:-BEGIN CERTIFICATE-MIICvDCCAiWgAwIBAgIEPPx1qzANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJDTjERMA8GA1UEChM
30、IQ0ZDQSBSQ0EwHhcNMDIwNjA0MDczOTIwWhcNMjIwNjA0MDgwOTIwWjAgMQswCQYDVQQGEwJDTjERMA8GA1UEChMIQ0ZDQSBSQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALjj9EbWFRz6rj4a42KpSB+jPqoHnkjmr3S69P4Aicz9r6ZfFat1SvjJAG4XjB69ejGczrP2Acp3JVyH3jDMXSa4EfEfw/Erom1ILaWyjKTl/Cs78oJMjGyiZT5CJ14gH6o9rVYMEr2FjH6a7SJKJ/P/YBiQzNh6h97
31、gynIyJ5ChAgMBAAGjggEBMIH+MBEGCWCGSAGG+EIBAQQEAwIABzBCBgNVHR8EOzA5MDegNaAzpDEwLzELMAkGA1UEBhMCQ04xETAPBgNVBAoTCENGQ0EgUkNBMQ0wCwYDVQQDEwRDUkwxMCsGA1UdEAQkMCKADzIwMDIwNjA0MDczOTIwWoEPMjAyMjA2MDQwODA5MjBaMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBQAmjTyUflTFGF0bnKhBt7HgXAbvDAdBgNVHQ4EFgQUAJo08lH5UxRhdG5yoQbex4F
32、wG7wwDAYDVR0TBAUwAwEB/zAdBgkqhkiG9n0HQQAEEDAOGwhWNi4wOjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAJv+gsBZv4egVVt7qPYUM8M0rfT2TjUd/vm7l7kmfGHLz2hJR2fMhgMXo8sxPBA6DL3ZW08X+UA5Gsa34enwtkDEVTe1Nvpz6L+W1C9hWpzyKsK0HQbrC5xTLAcEl7nltZb/JN44RbcevYcdAt3SyOAaoOtGljBQwFI0TFdMwHrg=-END CERTIFICATE-BEGIN CERTIFICATE-MIIC
33、ezCCAeSgAwIBAgIEPPyMXjANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJDTjERMA8GA1UEChMIQ0ZDQSBSQ0EwHhcNMDQwODEwMDgzNjM3WhcNMTQwNzI1MTYwMDAwWjAkMQswCQYDVQQGEwJDTjEVMBMGA1UEChMMQ0ZDQSBURVNUIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYrs50M7hq8y0LzFjfN3UPQzGiBg1kLinPqJcSx7oRXey15WpLLMLthcfp9Gn/7uXmtNL6athr91YXzrB3
34、Rcp53U3zqScGE9h2ktFQ3SNdZP6c/VSQ+27pAVxWRUC+F6pmUsno+jd1mftYjhKRV8yvCRpSV6HDzhLK83xbkoCfiQIDAQABo4G9MIG6MEIGA1UdHwQ7MDkwN6A1oDOkMTAvMQswCQYDVQQGEwJDTjERMA8GA1UEChMIQ0ZDQSBSQ0ExDTALBgNVBAMTBENSTDEwCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFACaNPJR+VMUYXRucqEG3seBcBu8MB0GA1UdDgQWBBRGctwlcp8CTlWDtYD5C9vpk7P0RTAM
35、BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY2LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GBAJ69l0Y1K+ayEvojzBHfzozMf0a0aQMaEbiil+RJQ8lvwWHZOeaRTcJOxyiPoQ5DZqhEusXavFPX4J/mE3H5PCnV5tF7tSO7vEguhs8m2IXxrOZCpKmCJVevNdV9x0m9eD629NVJGf683raMx39Ft4HQFaLT+EXbnSAWvYemPyOW-END CERTIFICATE-导入后,BIGIP 会自动识别其为一个 Boundle Certifi
36、cate:同时,自动识别出 Boundle 中的各级证书。在处理多级证书和多 CA 时,通常会用到 Boundle 证书方式。5.2 Client SSL Profile 的配置Client SSL Profile 的配置,是应用 SSL 加速功能中最重要的一个环节。5.2.1 单向认证方式单向认证模式下,需要配置的内容较少:Certificate:服务器证书Key:服务器证书对应的 KeyChain:如果服务器证书为多级证书体系,则将中间证书添加在这里。如果是单级证书体系,则不需要任何配置。5.2.2 双向认证方式在双向认证模式下,则需要配置 BIGIP 验证 Client 证书的部分:在双
37、向认证时,需要配置以下内容:Trusted Certificate Authorities:客户端证书的根证书Client Certificate:这里有两种模式可以选择Require:客户端必须提交证书,通常都采用这种方式Request:客户端可提交证书,也可不提交证书Advertised Certificate Authorities:在客户端连接时,服务器发送到客户端的信息,该信息使在客户端弹出的证书选择列表中只包含选中的根证书所颁发的客户端证书。配置时注意如果有中间证书,则一定要选择根证书和中间证书的 Boundle。5.3 CRLDP 配置在国内现有系统中,多采用 CRLDP 方式进
38、行客户端吊销证书验证。BIGIP 可配置多个 CRLDP 服务器,并根据客户端提交的证书信息 CRLDP 说明去查找不同的 CRLDP 服务器。CRLDP 配置步骤为:创建一个 CRLDP Server:需要填入 CRLDP Server IP 地址、端口,CRLDP Server 的 BaseDN。如果是信安系统,还需要选择 ReverseDN 为 Enable。创建一个 CRLDP Confiruation:需要填入 CRLDP 的更新间隔时间,通常为 30 分钟,即 1800 秒,并选择一个或多个 CRLDP Server。创建一个 CRLDP Profile:选择一个 CRLDP Co
39、nfiguration 并配置一个 auth rule,通常情况下均采用系统默认值。将 CRLDP profile 与 VS 关联:在 VS 配置的 authentication profile 中选择刚才创建的 CRLDP Profile。在配置 CRLDP 完成后,BIGIP 接收到客户端证书后,将根据证书中的 CRLDP 信息查找相应的 CRLDP 服务器,并比较客户的 Subject 是否存在于吊销列表中。如果在吊销列表中,则直接中断客户端连接。如果有特殊需求,也可以通过配置将未通过验证的客户请求重定向到指定的错误页面上。5.4 ACL 访问控制在 BIGIP 中,可通过灵活的 Rul
40、es 来实现用户的访问控制,通常访问控制可分为两种模式:允许指定的 URI 访问允许,关闭其他的所有 URI 访问关闭指定的 URI 访问允许,开放其他所有的 URI 访问典型的 Rules 如下:if $the_uri starts_with “/common“ or $the_uri starts_with “/AdditionalCode“ returnif $the_uri starts_with “/xxx.html“ or $the_uri starts_with “/eb“ HTTP:redirect “http:/172.30.4.98/err.html“5.5 证书内容添加到
41、 HTTP Header在实际应用中,通常需要将证书中的一些字段如 subject,Expire Date,Issue Date等信息插入到 HTTP header 中,传递给后台的服务器,以便于服务器对用户进行识别。在 BIGIP 中,可以将证书中的任何字段添加到 HTTP Header 并传递到后台服务器。添加方法需要通过 rules 进行。Rules 实例如下:when CLIENTSSL_CLIENTCERT session add ssl SSL:sessionid SSL:cert 0 when HTTP_REQUEST set id SSL:sessionidset cert s
42、ession lookup ssl $idHTTP:header insert subject X509:subject $certHTTP:header insert not_valid_before X509:not_valid_before $certHTTP:header insert not_valid_after X509:not_valid_after $cert该 Rule 运行后,在服务器端收到的 HTTP 请求如下:GET / HTTP/1.1Accept: */*Accept-Language: zh-cnAccept-Encoding: gzip, deflateUse
43、r-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)Host: 192.168.150.17Connection: Keep-Alivesubject: /CN=04350140n/OU=NET_CONN/O=F5/C=CNnot_valid_before: Feb 23 05:43:47 2005 GMTnot_valid_after: Feb 23 05:43:47 2007 GMT参考 BIGIP reference Guide,我们可以添加更多的内容到 HTTP Header 中。5.6 指定出错页面处理对于出错页面的处
44、理有两种方式直接由 HTTP:response 处理。Rule 如下:when HTTP_REQUEST HTTP:respond 200 content “Apology Page抱歉,您访问的页面未经授权。 .“通过 HTTP redirect 实现:Rule 如下:when HTTP_REQUEST HTTP:redirect http:/172.30.4.98/err.html5.7 同 VS 多 CA 支持在一些系统中,由于历史原因,可能会需求同一个 VS 支持两套或多套 CA 系统。服务器证书处理在任何情况下,针对一个 VS,服务器证书只能有一个。服务器中间证书处理由于服务器证书只
45、有一个,所以服务器中间证书也只能有一个,将相应的服务器中间证书配置到 Chain 即可。客户端证书根证处理对客户端证书的根证书,则需要将多个 CA 的根证书包括中间证书,全部 Boundle 到一个CA Boundle 中。并添加在 Trusted Authorities 中。客户端弹出证书选择框处理客户端弹出证书选择框是由 Advertaise Certificate 配置选项所决定,在此应当和 Trusted Autorities 选择同样的 CA Boundle。CRLDP 的处理配置多个 CRLDP Server,添加到同一个 CRLDP Configuration 中,BIGIP 可
46、以根据客户端证书提供的 CRL Distribution Point 自动选择相应的 CRLDP Server 来进行验证。5.8 透明 SSL 处理在透明 SSL 模式下,需要通配符证书支持,比如*,则所有和 后缀的域名,均用此服务器证书可以验证通过。在透明 SSL 模式下,BIGIP 需进行以下配置:1、 导入通配符证书以下是一个标准的通配符证书:2、 创建一个 Client SSL Profile 包含通配符证书3、 创建一个 Pool 包含所有的服务器4、 创建一个 Network VS,包含有所有的服务器地址,并使用相应的 Client SSL Profile。5、 创建 Rule
47、s 绑定在 Network VS 上。Rule 如下:when CLIENT_ACCEPTED use node IP:local_addr 80该 Rule 的主要作用为将用户的请求转发到相应节点的 80 端口上。其他的处理与普通的单向或双向处理相同。6 问与答问:能不能在 HTTPS VS 上实现诸如 Virtual Host 功能?比如根据不同的域名,提供不同的 Server 端证书和不同的采用客户端证书验证系统。答:不能。我们可以在 HTTP VS 上,通过对用户提交请求中的 HTTP header 中的 HOST 来判断用户请求的域名。然后定义到不同的 Pool 中,实现 Virtu
48、al Host 功能。但对于HTTPS 连接,SSL 是在 HTTP 请求之前进行的。也就是说在双方进行握手连接时,服务器端,也就是 BIGIP 根本不可能知道用户要访问的域名,因为此时完全没有 HTTP 请求发送。所以对于一个 VS,BIGIP 只能返回一个服务器证书供客户端验证。从另外一个角度讲,每张证书都和每个域名所对应,所以不可能用一张证书去对应多个域名。问:客户端证书体系和服务器证书必须是由一个 CA 发布吗?答:客户端证书和服务器证书完全没有关系。不必是一个 CA 发布的。问:我已经向我的 CA 申请了新的服务器证书,该证书也在有效期内,并且正确的配置了BIGIP,但我在浏览的时候始终提示“该证书由您没有选定的信任公司颁发 ”。答:这是由于您的 CA 的根证书不在浏览器中的“受信任的证书颁发机构”列表中。用户需要安装根证才能不提示该对话框。问:我拿到的证书无法用文本编辑器打开,里面全部都是乱码,看不到BEGIN等。答:这种情况下,多半拿到的是 DER 格式的证书。需要上传到 BIGIP 上,用 OpenSSL的命令进行以下转换。命令如下: