客户端身份验证
在典型的 SSL事务中,通过安全连接连接连接到服务器的客户端将检查服务器的有效性。为此,它会在启动 SSL事务之前检查服务器的证书。但是,有时您可能希望将服务器配置为对连接到该服务器的客户端进行身份验证。
注意:从版本13.0 Biuld 41。x中,Citrix ADC设备支持证书请求消息,只要总大小在32 KB以内,这些消息分割成多个记录。之前,支持的最大大小为16 KB,不支持碎片。
在 SSL虚拟服务器上启用客户端身份验证后,Citrix ADC设备会在 SSL握手期间要求提供客户端证书。设备检查客户端提供的证书是否存在正常约束,例如颁发者签名和到期日期。
注意:对于验证颁发者签名的设备,颁发客户端证书的 加利福尼亚州的证书必须安装在设备上,并绑定到客户端正在与之进行交易的虚拟服务器。
如果证书有效,设备将允许客户端访问所有安全资源。但是,如果证书无效,设备会在SSL握手期间删除客户端请求。
设备通过首先形成证书链来验证客户端证书,从客户端证书开始,然后以客户端的根 加利福尼亚州证书结尾(例如,威瑞信)。根 加利福尼亚州证书可能包含一个或多个中间 加利福尼亚州证书(如果根 加利福尼亚州不直接颁发客户端证书)。
在 Citrix ADC设备上启用客户端身份验证之前,请确保在客户端上安装了有效的客户端证书。然后,为处理事务的虚拟服务器启用客户端身份验证。最后,将颁发客户端证书的 加利福尼亚州的证书绑定到设备上的虚拟服务器。
注意:Citrix ADC MPX设备支持从 512位到 4096位的证书密钥对大小。必须使用以下哈希算法之一对证书进行签名:
- MD5
- sha - 1
- SHA-224
- SHA-256
- SHA-384
- sha - 512
在 SDX设备上,如果将 SSL芯片分配给 VPX实例,则应用 MPX设备的证书密钥对大小支持。否则,将适用 VPX实例的正常证书密钥对大小支持。
Citrix ADC虚拟设备(VPX实例)支持至少512位的证书,最多具有以下大小:
- 虚拟服务器上的 4096 位服务器证书
- 服务上的 4096位客户端证书
- 4096位CA证书
- 物理服务器上的 4096 位证书
注意:从13.0版79本。x开始,在VPX平台上的SSL握手期间,支持使用4096位RSA客户端证书的客户端身份验证。
备注:
- 有关MPX FIPS限制,请参阅MPX FIPS限制。
- 有关有关FIPS限制,请参阅SDX FIPS限制。
提供客户端证书
配置客户端身份验证之前,必须在客户端上安装有效的客户端证书。客户端证书包括与Citrix ADC设备创建安全会话的特定客户端系统的详细信息。每个客户端证书都是唯一的,只能由一个客户端系统使用。
无论是从 加利福尼亚州获取客户端证书、使用现有客户端证书还是在 Citrix ADC设备上生成客户端证书,都必须将证书转换为正确的格式。在 Citrix ADC设备上,证书以 保密邮件或 德格式存储,必须转换为 PKCS#12格式,然后才能将证书安装在客户端系统上。转换证书并将其传输到客户端系统后,请确保已将其安装在该系统上并为客户端应用程序进行配置。应用程序(例如 网状物浏览器)必须是 SSL事务的一部分。
有关如何将证书从 保密邮件或 德格式转换为 PKCS#12格式的说明,请参阅导入和转换 SSL文件。
有关如何生成客户端证书的说明,请参阅创建证书。
启用基于客户端证书的身份验证
默认情况下,在Citrix ADC设备上禁用客户端身份验证,并且所有SSL事务都在不对客户端进行身份验证的情况下继续进行。作为SSL握手的一部分,您可以将客户端身份验证配置为可选或强制。
如果客户端身份验证是可选的,则设备会请求客户端证书,但即使客户端出现了无效的证书,也会继续进行SSL事务。如果客户端身份验证是强制性的,则如果SSL客户端未提供有效的证书,设备将终止SSL握的手。
注意:Citrix建议您在将基于客户端证书的身份验证检查更改为可选之前定义正确的访问控制策略。
注意:客户端身份验证是针对单个SSL虚拟服务器配置的,而不是全局。
使用CLI启用基于客户端证书的身份验证
在命令提示符下,键入以下命令以启用基于客户端证书的身份验证并验证配置:
设置ssl vserver[-clientAuth(已启用|已禁用)][-clientCert(必需|可选)]显示ssl vserver<!--NeedCopy-->
示例:
设置ssl VSSERVER vssl-clientAuth ENABLED-clientCert强制完成显示VSSERVER vssl的ssl VSSER vssl高级ssl配置vssl:DH:禁用临时RSA:启用刷新计数:0会话重用:启用超时:120秒密码重定向:禁用SSLv2重定向:禁用明文端口:0客户端身份验证:启用客户端证书要求:Mandatory SSL重定向:禁用的非FIPS密码:禁用的SNI:禁用的OCSP绑定:禁用的HST:禁用的HST包含子域:无HST最大年龄:0 SSLv2:禁用的SSLv3:启用的TLSv1.0:启用的TLSv1.2:启用的TLSv1.2:启用的1)证书密钥名称:sslckey服务器证书1)策略名称:客户端\u证书\u策略优先级:0 1)密码名称:默认D说明:预定义的密码别名已完成<!--NeedCopy-->
使用GUI启用基于客户端证书的身份验证
- 导航到流量管理 > 负载平衡 > 虚拟服务器,然后打开虚拟服务器。
- 在“SSL参数”部分中,选择“客户端身份验证”,然后在“客户端证书”列表中选择“强制”。
注意: 如果客户端身份验证设置为强制,并且客户端证书包含策略扩展,则证书验证将失败。从版本 12.0-56.x中,您可以在前端 SSL配置文件中设置一个参数以跳过此检查。默认情况下,该参数处于禁用状态。也就是说,默认情况下执行检查。
使用CLI在客户端身份验证期间跳过策略扩展检查
在命令提示符下,键入:
set ssl profile ns_default_ssl_profile_frontend -clientauth ENABLED -skipClientCertPolicyCheck ENABLED参数skipClientCertPolicyCheck控制策略扩展检查,如果在X509证书链中存在。仅当启用客户端认证且设置为强制证书时适用。取值说明如下:—ENABLED:在客户端认证时跳过策略检查。—DISABLED:在客户端认证时进行策略检查。取值范围:ENABLED、DISABLED默认值:DISABLED
使用 桂在客户端身份验证期间跳过策略扩展检查
- 导航到系统>配置文件>SSL配置文件。
- 创建新的前端配置文件或编辑现有的前端配置文件。
- 验证是否已启用客户端身份验证,并将客户端证书设置为强制。
- 选择跳过客户端证书策略检查。
将CA证书绑定到虚拟服务器
Citrix ADC设备上存在证书的 加利福尼亚州必须颁发用于客户端身份验证的客户端证书。将此证书绑定到执行客户端身份验证的 Citrix ADC虚拟服务器。
将 加利福尼亚州证书绑定到 SSL虚拟服务器,这样设备就可以在验证客户端证书时形成完整的证书链。否则,证书链形成失败,并且即使其证书有效,客户端也会被拒绝访问。
您可以按任意顺序将CA证书绑定到SSL虚拟服务器。设备在客户端证书验证期间形成正确的顺序。
例如,如果客户端提供由卡鲁阿颁发的证书,其中卡鲁阿是一个中间 CA其证书由卡鲁布颁发,其证书又由受信任的根 加利福尼亚州Root_ca颁发,该证书包含所有这三个证书都必须绑定到Citrix ADC设备上的虚拟服务器。
有关将一个或多个证书绑定到虚拟服务器的说明,请参阅将证书密钥对绑定到 SSL虚拟服务器。
有关创建证书链的说明,请参阅创建证书链。
对客户端证书验证进行更严格的控制
如果单个根 加利福尼亚州颁发了有效的中间 加利福尼亚州证书,Citrix ADC设备将接受这些证书。也就是说,如果只有 根钙证书绑定到虚拟服务器,而该 根钙验证了随客户端证书发送的任何中间证书,则设备将信任证书链并且握手成功。
但是,如果客户端在握手中发送证书链,则除非该证书绑定到 SSL虚拟服务器,否则无法使用 CRL或 OCSP响应程序验证任何中间证书。因此,即使其中一个中间证书被吊销,握手也是成功的。作为握手的一部分,SSL虚拟服务器发送绑定到它的 加利福尼亚州证书的列表。为了更严格的控制,可以将 SSL虚拟服务器配置为仅接受由绑定到该虚拟服务器的 加利福尼亚州证书之一签名的证书。若要执行此操作,您必须启用绑定到虚拟服务器的 SSL配置文件中的ClientAuthUseBoundCAChain设置。如果绑定到虚拟服务器的 加利福尼亚州证书之一尚未签署客户端证书,握手将失败。
例如,假设两个客户端证书,即clientcert1和clientcert2,分别由中间证书INT-CA-A和INT-CA-B签名。中间证书由根证书根CA签名。Int-CA-A和根ca绑定到SSL虚拟服务器。在默认情况下(禁用ClientAuthUseBoundCAChain),接受clientcert1和clientcert2。但是,如果启用了ClientauthuseBoundCachaon, Citrix ADC设备只接受clientcert1。
使用 CLI启用对客户端证书验证的更严格的控制
在命令提示符下,键入:
设置ssl配置文件-启用ClientAuthuseBundcachain<!--NeedCopy-->
使用GUI对客户端证书验证进行更严格的控制
- 导航到”系统”>“配置文件”,选择“SSL配置文件”选项卡,然后创建SSL配置文件,或选择现有配置文件。
- 选择“使用绑定 加利福尼亚州链启用客户端身份验证”。