本节介绍了使用 NSX Advanced Load Balancer UI 和 CLI 配置客户端 SSL 证书验证的步骤。

UI 配置

以下是设置客户端 SSL 证书验证选项的步骤:

  1. 导航到模板 > 配置文件 > 应用程序

  2. 编辑一个现有的配置文件,或者单击创建以定义新的配置文件。

  3. 在创建新的应用程序配置文件时,单击在安全性部分下面提供的安全性选项卡。

  4. 以下是为客户端证书验证定义的验证类型选项:

    1. - NSX Advanced Load Balancer 不执行客户端证书验证。这是默认值。

    2. 请求 - NSX Advanced Load Balancer 将请求客户端证书以进行验证,但客户端并非必须提供客户端证书。

    3. 必需 - 必须提供客户端证书以进行验证。



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 握手期间提供客户端证书。该证书由处于 RequestRequire 模式的 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 函数主题。