Citrix ADC

客户端证书直通

现在可以将 Citrix ADC 配置为将客户端证书传递到需要客户端证书进行用户身份验证的受保护应用程序。ADC 首先对用户进行身份验证,然后将客户端证书插入请求并将其发送到应用程序。通过添加适当的 SSL 策略来配置此功能。

当用户提供客户端证书时,此功能的确切行为取决于 VPN 虚拟服务器的配置。

  • 如果 VPN 虚拟服务器配置为接受客户端证书但不需要这些证书,ADC 会将证书插入请求中,然后将请求转发给受保护的应用程序。
  • 如果 VPN 虚拟服务器禁用了客户端证书身份验证,则 ADC 会重新协商身份验证协议并重新对用户进行身份验证,然后再将客户端证书插入标头并将请求转发给受保护的应用程序。
  • 如果 VPN 虚拟服务器配置为要求客户端证书身份验证,ADC 将使用客户端证书对用户进行身份验证,然后在标头中插入证书并将请求转发给受保护的应用程序。

在所有这些情况下,您可以按如下方式配置客户端证书直通。

使用命令行界面创建和配置客户端证书直通

在命令提示符下,键入以下命令:

  • add vpn vserver <name> SSL <IP> 443

    对于名称,请替换虚拟服务器的名称。名称必须包含一到 127 个 ASCII 字符,以字母或下划线 (_) 开头,并且只包含字母、数字和下划线、井号 (#)、句点 (.)、空格、冒号 (:)、at (@)、equals (=) 和连字符 (-)。对于 <IP>,请替换分配给虚拟服务器的 IP 地址。`` `

  • set ssl vserver <name> -clientAuth ENABLED -clientCert <clientcert> 对于 <name>,替换刚创建的虚拟服务器的名称。对于 <clientCert>,请替换以下值之一:
    • 禁用-禁用 VPN 虚拟服务器上的客户端证书身份验证。
    • 强制性-将 VPN 虚拟服务器配置为要求客户端证书进行身份验证。
    • 选项-将 VPN 虚拟服务器配置为允许客户端证书身份验证,但不要求它。
  • bind vpn vserver \<name\> -policy local 对于 <name>,替换您创建的 VPN 虚拟服务器的名称。
  • bind vpn vserver \<name> -policy cert 对于 <name>,替换您创建的 VPN 虚拟服务器的名称。
  • bind ssl vserver \<name> -certkeyName \<certkeyname> 对于 <name>,替换您创建的虚拟服务器的名称。对于 <certkeyName>,请替换客户端证书密钥。
  • bind ssl vserver \<name> -certkeyName \<cacertkeyname> -CA -ocspCheck Optional 对于 <name>,替换您创建的虚拟服务器的名称。对于 <cacertkeyName>,请替换 CA 证书密钥。
  • add ssl action \<actname\> -clientCert ENABLED -certHeader CLIENT-CERT 对于 <actname>,请替换 SSL 操作的名称。
  • add ssl policy \<polname\> -rule true -action \<actname\> 对于 <polname>,请替换新 SSL 策略的名称。对于 <actname>,替换刚创建的 SSL 操作的名称。
  • bind ssl vserver \<name\> -policyName \<polname\> -priority 10 对于 <name>,请替换 VPN 虚拟服务器的名称。

示例

  • add vpn vserver vs-certpassthru SSL 10.121.250.75 443
  • set ssl vserver vs-certpassthru -clientAuth ENABLED -clientCert optional
  • bind vpn vserver vs-certpassthru -policy local
  • bind vpn vserver vs-certpassthru -policy cert
  • bind ssl vserver vs-certpassthru -certkeyName mycertKey
  • bind ssl vserver vs-certpassthru -certkeyName mycertKey -CA -ocspCheck Optional
  • add ssl action act-certpassthru -clientCert ENABLED -certHeader CLIENT-CERT
  • add ssl policy pol-certpassthru -rule true -action act-certpassthru
  • bind ssl vserver vs-certpassthru -policyName pol-certpassthru -priority 10

客户端证书直通