Client authentication

En una transacción SSL típica, el cliente que se conecta a un servidor a través de una conexión segura comprueba la validez del servidor. Para ello, comprueba el certificado del servidor antes de iniciar la transacción SSL. A veces, sin embargo, es posible que desee configurar el servidor para autenticar el cliente que se está conectando a él.

Nota: A partir de la versión 13.0 compilación 41.x, el dispositivo Citrix ADC admite mensajes de solicitud de certificado fragmentados en más de un registro, siempre que el tamaño total esté dentro de 32 KB. Anteriormente, el tamaño máximo admitido era de 16 KB y la fragmentación no era compatible.

Con la autenticación de cliente habilitada en un servidor virtual SSL, el dispositivo Citrix ADC solicita el certificado de cliente durante el protocolo de enlace SSL. El dispositivo comprueba el certificado presentado por el cliente en busca de restricciones normales, como la firma del emisor y la fecha de caducidad.

Nota: Para que el dispositivo verifique las firmas de emisor, el certificado de la CA que emitió el certificado de cliente debe estar instalado en el dispositivo y enlazado al servidor virtual con el que el cliente está haciendo transacciones.

Si el certificado es válido, el dispositivo permite que el cliente tenga acceso a todos los recursos seguros. Pero si el certificado no es válido, el dispositivo descarta la solicitud del cliente durante el protocolo de enlace SSL.

El dispositivo verifica el certificado de cliente formando primero una cadena de certificados, comenzando con el certificado de cliente y terminando con el certificado de CA raíz del cliente (por ejemplo, Verisign). El certificado de CA raíz puede contener uno o más certificados de CA intermedios (si la CA raíz no emite directamente el certificado de cliente).

Antes de habilitar la autenticación de cliente en el dispositivo Citrix ADC, asegúrese de que hay instalado un certificado de cliente válido en el cliente. A continuación, habilite la autenticación del cliente para el servidor virtual que controla las transacciones. Por último, vincule el certificado de la CA que emitió el certificado de cliente al servidor virtual del dispositivo.

Nota: Un dispositivo Citrix ADC MPX admite un tamaño de par de claves de certificado de 512 bits a 4096 bits. El certificado debe firmarse mediante uno de los siguientes algoritmos hash:

  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512

En un dispositivo SDX, si se asigna un chip SSL a una instancia VPX, se aplica el tamaño de par de certificados y claves de un dispositivo MPX. De lo contrario, se aplica el tamaño normal del par de certificados y claves de una instancia VPX.

Un dispositivo virtual Citrix ADC (instancia VPX) admite certificados de al menos 512 bits, hasta los tamaños siguientes:

  • Certificado de servidor de 4096 bits en el servidor virtual
  • Certificado de cliente de 4096 bits en el servicio
  • Certificado CA de 4096 bits
  • Certificado de 4096 bits en el servidor físico
  • Certificado de cliente de 2048 bits (si la autenticación de cliente está habilitada en el servidor virtual)

Notas:

Proporcionar el certificado de cliente

Antes de configurar la autenticación de cliente, se debe instalar un certificado de cliente válido en el cliente. Un certificado de cliente incluye detalles sobre el sistema cliente específico que crea sesiones seguras con el dispositivo Citrix ADC. Cada certificado de cliente es único y solo debe ser utilizado por un sistema cliente.

Ya sea que obtenga el certificado de cliente de una CA, utilice un certificado de cliente existente o genere un certificado de cliente en el dispositivo Citrix ADC, debe convertir el certificado al formato correcto. En el dispositivo Citrix ADC, los certificados se almacenan en el formato PEM o DER y se deben convertir al formato PKCS #12 antes de instalarlos en el sistema cliente. Después de convertir el certificado y transferirlo al sistema cliente, asegúrese de que esté instalado en ese sistema y configurado para la aplicación cliente que formará parte de las transacciones SSL (por ejemplo, el explorador web).

Para obtener instrucciones sobre cómo convertir un certificado del formato PEM o DER al formato PKCS #12, consulte Importar y convertir archivos SSL.

Para obtener instrucciones sobre cómo generar un certificado de cliente, consulte Crear un certificado.

Habilitar la autenticación basada en certificados de cliente

De forma predeterminada, la autenticación de cliente está inhabilitada en el dispositivo Citrix ADC y todas las transacciones SSL se realizan sin autenticar al cliente. Puede configurar la autenticación de cliente para que sea opcional u obligatoria como parte del protocolo de enlace SSL.

Si la autenticación de cliente es opcional, el dispositivo solicita el certificado de cliente pero continúa con la transacción SSL incluso si el cliente presenta un certificado no válido. Si la autenticación del cliente es obligatoria, el dispositivo finaliza el protocolo de enlace SSL si el cliente SSL no proporciona un certificado válido.

Precaución: Citrix recomienda definir directivas de control de acceso adecuadas antes de cambiar la comprobación de autenticación basada en certificados de cliente a opcional.

Nota: La autenticación de cliente está configurada para servidores virtuales SSL individuales, no globalmente.

Habilitar la autenticación basada en certificados de cliente mediante la CLI

En el símbolo del sistema, escriba los siguientes comandos para habilitar la autenticación basada en certificados de cliente y verificar la configuración:

set ssl vserver <vServerName> [-clientAuth (ENABLED | DISABLED)] [-clientCert (MANDATORY | OPTIONAL)]
show ssl vserver <vServerName>

Ejemplo:

set ssl vserver vssl -clientAuth ENABLED -clientCert Mandatory
Done
show ssl vserver vssl

Advanced SSL configuration for VServer vssl:
DH: DISABLED
Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: ENABLED Client Cert Required: Mandatory
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
        SNI: DISABLED
        OCSP Stapling: DISABLED
        HSTS: DISABLED
        HSTS IncludeSubDomains: NO
        HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.2: ENABLED TLSv1.2: ENABLED

1) CertKey Name: sslckey Server Certificate

1) Policy Name: client_cert_policy Priority: 0

1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done

Habilitar la autenticación basada en certificados de cliente mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales y abra un servidor virtual.
  2. En la sección Parámetros SSL, seleccione Autenticación de cliente y, en la lista Certificado de cliente, seleccione Obligatorio.

Nota:

Si la autenticación de cliente se establece en obligatoria y si el certificado de cliente contiene extensiones de directiva, se produce un error en la validación de certificados. Desde la versión 12.0-56.x, puede establecer un parámetro en el perfil SSL front-end para omitir esta comprobación. El parámetro está inhabilitado de forma predeterminada. Es decir, la comprobación se realiza de forma predeterminada.

Omitir la comprobación de la extensión de directiva durante la autenticación del cliente mediante la CLI

En el símbolo del sistema, escriba:

set ssl profile ns_default_ssl_profile_frontend -clientauth ENABLED -skipClientCertPolicyCheck ENABLED

Parameter

skipClientCertPolicyCheck

              Control policy extension check, if present inside the X509 certificate chain. Applicable only if client authentication is enabled and client certificate is set to mandatory. Possible values functions as follows:

- ENABLED: Skip the policy check during client authentication.

- DISABLED: Perform policy check during client authentication.

Possible values: ENABLED, DISABLED

Default: DISABLED

Omitir la comprobación de la extensión de directiva durante la autenticación del cliente mediante la interfaz gráfica de usuario

  1. Vaya a Sistema > Perfiles > Perfiles SSL.
  2. Cree un nuevo perfil front-end o modifique un perfil front-end existente.
  3. Compruebe que la autenticación de cliente está habilitada y que el certificado de cliente está establecido en obligatorio.
  4. Seleccione Omitir comprobación de directiva de certificados de cliente.

Omitir comprobación de directiva de certificados

Vincular certificados de CA al servidor virtual

Una CA cuyo certificado esté presente en el dispositivo Citrix ADC debe emitir el certificado de cliente utilizado para la autenticación de cliente. Enlazar este certificado al servidor virtual Citrix ADC que lleva a cabo la autenticación de cliente.

Enlazar el certificado de CA al servidor virtual SSL de tal manera que el dispositivo pueda formar una cadena de certificados completa cuando verifique el certificado de cliente. De lo contrario, se produce un error en la formación de la cadena de certificados y se deniega el acceso al cliente incluso si su certificado es válido.

Puede enlazar certificados de CA al servidor virtual SSL en cualquier orden. El dispositivo forma el pedido adecuado durante la verificación del certificado de cliente.

Por ejemplo, si el cliente presenta un certificado emitido por CA_A, donde CA_A es unaCA intermedia cuyo certificado es emitido por CA_B, cuyo certificado es emitido a su vez por una CA raíz de confianza, Root_CA, una cadena de certificados que contienen estos tres certificados deben estar enlazados al servidor virtual del dispositivo Citrix ADC.

Para obtener instrucciones sobre cómo enlazar uno o más certificados al servidor virtual, consulte Enlazar el par de claves de certificado al servidor virtual SSL.

Para obtener instrucciones sobre cómo crear una cadena de certificados, consulte Crear una cadena de certificados.

Control más estricto de la validación de certificados de cliente

El dispositivo Citrix ADC acepta certificados de CA intermedia válidos si los emite una sola CA Root-CA. Es decir, si solo el certificado Root-CA está enlazado al servidor virtual y cualquier certificado intermedio enviado con el certificado de cliente es validado por dicha Root-CA, el dispositivo confía en la cadena de certificados y el protocolo de enlace se realiza correctamente.

Sin embargo, si un cliente envía una cadena de certificados en el protocolo de enlace, ninguno de los certificados intermedios se puede validar mediante un respondedor CRL u OCSP, a menos que dicho certificado esté enlazado al servidor virtual SSL. Por lo tanto, incluso si se revoca uno de los certificados intermedios, el protocolo de enlace se realiza correctamente. Como parte del protocolo de enlace, el servidor virtual SSL envía la lista de certificados de CA que están enlazados a él. Para un control más estricto, puede configurar el servidor virtual SSL para que acepte solo un certificado firmado por uno de los certificados de CA enlazados a ese servidor virtual. Para ello, debe habilitar la configuración ClientAuthUseBoundCachain en el perfil SSL enlazado al servidor virtual. El protocolo de enlace falla si el certificado de cliente no está firmado por uno de los certificados de CA enlazados al servidor virtual.

Por ejemplo, digamos que dos certificados de cliente, clientcert1 y clientcert2, están firmados por los certificados intermedios INT-CA-A e INT-CA-B, respectivamente. Los certificados intermedios están firmados por el certificado raíz Root-CA. Int-ca-A y Root-CA están enlazados al servidor virtual SSL. En el caso predeterminado (ClientAuthUseBoundCachain inhabilitado), se aceptan tanto clientcert1 como clientcert2. Sin embargo, ifClientAuthUseBoundCachain está habilitado, el dispositivo Citrix ADC solo acepta clientcert1.

Habilitar un control más estricto en la validación de certificados de cliente mediante la CLI

En el símbolo del sistema, escriba:

set ssl profile <name> -ClientAuthUseBoundCAChain Enabled

Habilitar un control más estricto en la validación de certificados de cliente mediante la interfaz gráfica de usuario

  1. Vaya a Sistema > Perfiles, seleccione la ficha Perfiles SSL y cree un perfil SSL o seleccione un perfil existente.
  2. Seleccione Habilitar autenticación de cliente mediante cadena de CA enlazada.