本节介绍了使用 NSX Advanced Load Balancer UI 和 CLI 配置客户端 SSL 证书验证的步骤。
UI 配置
以下是设置客户端 SSL 证书验证选项的步骤:
导航到
。编辑一个现有的配置文件,或者单击创建以定义新的配置文件。
在创建新的应用程序配置文件时,单击在安全性部分下面提供的安全性选项卡。
以下是为客户端证书验证定义的验证类型选项:
无 - NSX Advanced Load Balancer 不执行客户端证书验证。这是默认值。
请求 - NSX Advanced Load Balancer 将请求客户端证书以进行验证,但客户端并非必须提供客户端证书。
必需 - 必须提供客户端证书以进行验证。
CLI 配置
NSX Advanced Load Balancer CLI 将上述选项称为模式。在 configure Shell 命令后面,将使用三个子命令之一:
[admin:10-130-180-138]: > configure applicationprofile my-profile [admin:10-130-180-138]: applicationprofile:http_profile> ssl_client_certificate_mode ssl_client_certificate_none [admin:10-130-180-138]: applicationprofile:http_profile> ssl_client_certificate_mode ssl_client_certificate_request [admin:10-130-180-138]: applicationprofile:http_profile> ssl_client_certificate_mode ssl_client_certificate_require
如果 SSL 通信通过的 NSX Advanced Load Balancer 使用客户端证书身份验证,则会在初始 SSL 握手期间提供客户端证书。该证书由处于 Request
和 Require
模式的 NSX Advanced Load Balancer 控制器 进行验证。
如果成功完成 SSL 握手,验证类型设置为 Request
,并且客户端未提供证书,将建立连接。不过,如果客户端提供了证书,但证书由于 Linux 页面上提到的诊断部分中提到的任何原因而无效,则 NSX Advanced Load Balancer 立即发回 HTTP 400 响应,即使完成 SSL 握手也是如此。
支持 allow_invalid_client_cert
配置选项以允许处理无效的客户端证书。
可以在虚拟服务中配置该功能,如下所示:
[admin:10-130-180-138]: > configure virtualservice *virtualservicename* [admin:10-130-180-138]: virtualservice> allow_invalid_client_cert
默认值为 False,这意味着如果客户端提供无效的证书,则不会处理请求。如果 allow_invalid_client_cert 标记的值设置为 True,则由您负责处理无效的证书情况。您可以使用 avi.ssl.check_client_cert_validity() 函数终止请求或关闭连接。
即使允许无效的证书通过 NSX Advanced Load Balancer,也建议根据具体错误采取措施。
用于客户端证书验证的 DataScript 函数
有关更多信息,请参见《VMware NSX Advanced Load Balancer DataScript 指南》中的用于客户端证书验证的 DataScript 函数主题。