5.3 CRLDP配置
在国内现有系统中,多采用CRLDP方式进行客户端吊销证书验证。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 Configuration并配置一个auth rule,通常情况下均采用系统默认值。
将CRLDP profile与VS关联:在VS配置的authentication profile中选择刚才创建的CRLDP Profile。
在配置CRLDP完成后,BIGIP接收到客户端证书后,将根据证书中的CRLDP信息查找相应的CRLDP服务器,并比较客户的Subject是否存在于吊销列表中。如果在吊销列表中,则直接中断客户端连接。如果有特殊需求,也可以通过配置将未通过验证的客户请求重定向到指定的错误页面上。
5.4 ACL访问控制
在BIGIP中,可通过灵活的Rules来实现用户的访问控制,通常访问控制可分为两种模式:
允许指定的URI访问允许,关闭其他的所有URI访问
关闭指定的URI访问允许,开放其他所有的URI访问
典型的Rules如下:
if { $the_uri starts_with "/common" or $the_uri starts_with "/AdditionalCode" } {
return
}
if { $the_uri starts_with "/xxx.html" or $the_uri starts_with "/eb" } {
HTTP::redirect "http://172.30.4.98/err.html"
}
5.5 证书内容添加到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::sessionid]
set cert [session lookup ssl $id]
HTTP::header insert subject [X509::subject $cert]
HTTP::header insert not_valid_before [X509::not_valid_before $cert]
HTTP::header insert not_valid_after [X509::not_valid_after $cert]
}
该Rule运行后,在服务器端收到的HTTP请求如下:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: 192.168.150.17
Connection: Keep-Alive
subject: /CN=04350140n/OU=NET_CONN/O=F5/C=CN
not_valid_before: Feb 23 05:43:47 2005 GMT
not_valid_after: Feb 23 05:43:47 2007 GMT
参考BIGIP reference Guide,我们可以添加更多的内容到HTTP Header中。
5.6 指定出错页面处理
对于出错页面的处理有两种方式
直接由HTTP::response处理。
Rule如下:
when HTTP_REQUEST {
HTTP::respond 200 content "<html><head><title>Apology Page</title></head><body>抱歉,您访问的页面未经授权。.<p>< /body></html>"
}
通过HTTP redirect实现:
Rule如下:
when HTTP_REQUEST {
HTTP::redirect http://172.30.4.98/err.html
}
5.7 同VS多CA支持
在一些系统中,由于历史原因,可能会需求同一个VS支持两套或多套CA系统。
服务器证书处理
在任何情况下,针对一个VS,服务器证书只能有一个。
服务器中间证书处理
由于服务器证书只有一个,所以服务器中间证书也只能有一个,将相应的服务器中间证书配置到Chain即可。
客户端证书根证处理
对客户端证书的根证书,则需要将多个CA的根证书包括中间证书,全部Boundle到一个CA Boundle中。并添加在Trusted Authorities中。
客户端弹出证书选择框处理
客户端弹出证书选择框是由Advertaise Certificate配置选项所决定,在此应当和Trusted Autorities选择同样的CA Boundle。
CRLDP的处理
配置多个CRLDP Server,添加到同一个CRLDP Configuration中,BIGIP可以根据客户端证书提供的CRL Distribution Point自动选择相应的CRLDP Server来进行验证。
5.8 透明SSL处理
在透明SSL模式下,需要通配符证书支持,比如*.f5.com.cn,则所有和f5.com.cn后缀的域名,均用此服务器证书可以验证通过。
在透明SSL模式下,BIGIP需进行以下配置:
1、 导入通配符证书
以下是一个标准的通配符证书:

2、 创建一个Client SSL Profile包含通配符证书
3、 创建一个Pool包含所有的服务器
4、 创建一个Network VS,包含有所有的服务器地址,并使用相应的Client SSL Profile。
5、 创建Rules绑定在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中,实现Virtual Host功能。但对于HTTPS连接,SSL是在HTTP请求之前进行的。也就是说在双方进行握手连接时,服务器端,也就是BIGIP根本不可能知道用户要访问的域名,因为此时完全没有HTTP请求发送。所以对于一个VS,BIGIP只能返回一个服务器证书供客户端验证。从另外一个角度讲,每张证书都和每个域名所对应,所以不可能用一张证书去对应多个域名。
问:客户端证书体系和服务器证书必须是由一个CA发布吗?
答:客户端证书和服务器证书完全没有关系。不必是一个CA发布的。
问:我已经向我的CA申请了新的服务器证书,该证书也在有效期内,并且正确的配置了BIGIP,但我在浏览的时候始终提示“该证书由您没有选定的信任公司颁发”。
答:这是由于您的CA的根证书不在浏览器中的“受信任的证书颁发机构”列表中。用户需要安装根证才能不提示该对话框。
问:我拿到的证书无法用文本编辑器打开,里面全部都是乱码,看不到—BEGIN—等。
答:这种情况下,多半拿到的是DER格式的证书。需要上传到BIGIP上,用OpenSSL的命令进行以下转换。命令如下:
openssl crl -inform DER -in temp.crl -outform PEM -out pem.crl
其中,temp.crl为输入文件,pem.crl为输出文件。
问:为什么我在浏览器里查看我的证书,得到证书无效的信息,如下图:


答:该问题是因为在安装证书的时候,没有把证书颁发机构的根证书装入的原因。在安装根证书后,就可以显示出证书的正确信息了。通常情况下,在安装证书“.pfx”文件时,都会将证书颁发机构的根证书装入。
7 附录:
7.1 典型应用案例
客户需求:
某大型金融机构原采用BIGIP 5100实现SSL加速。从业务的发展速度规划,该机构需要在新的系统下能达到原系统性能的10倍以上,并且系统需要考虑到冗余和管理性的综合要求,在系统中的设备数量尽量减少。
解决方案简介及示意拓扑
在该机构的新一代业务系统建设中,共采用了4台BIGIP 6400。其中两台BIGIP采用高可用性结构负责服务器负载均衡,另外外挂的两台BIGIP 6400负责SSL加速,两台BIGIP 6400 同时工作。
客户得到的益处和典范效应
该系统为国内第一个采用F5 BIGIP V9系列的SSL加速系统。BIGIP 6400具有强大的SSL处理能力,最大可处理15,000 TPS,2Gbps的流量。可以在2-3年内满足该金融机构的扩展需求。为其飞速发展的网上交易业务提供有效的支撑平台。
