ADC

Acciones integradas SSL y acciones definidas por el usuario

A menos que solo necesite las acciones integradas en sus directivas, debe crear las acciones antes de crear las directivas. A continuación, puede especificar las acciones al crear las directivas. Las acciones integradas son de dos tipos, acciones de control y acciones de datos. Las acciones de control se utilizan en las directivas de control y las acciones de datos en las directivas de datos.

Las acciones de control integradas son:

  • doClientAuth: realiza la autenticación con certificados de cliente. (No compatible con TLS1.3)
  • noClientAuth: no realice la autenticación con certificado de cliente. (No compatible con TLS1.3)

Las acciones de datos integradas son:

  • Restablecer: cierre la conexión enviando un paquete RST al cliente.
  • Drop: elimina todos los paquetes del cliente. La conexión permanece abierta hasta que el cliente la cierre.
  • NOOP: reenvía el paquete sin realizar ninguna operación en él.

Nota: El protocolo TLS 1.3 no admite ninguna acción dependiente de la autenticación del cliente, como ClientCertVerification y SSLLogProfile.

Puede crear acciones de datos definidas por el usuario. Si habilita la autenticación del cliente, puede crear una acción SSL para insertar los datos del certificado de cliente en el encabezado de la solicitud antes de reenviar la solicitud al servidor web.

Si la evaluación de una directiva da como resultado un estado indefinido, se realiza una acción UNDEF. Para una directiva de datos o una directiva de control, puede especificar RESET, DROP o NOOP como acción UNDEF. Para una directiva de control, también tiene la opción de especificar DOCLIENTAUTH o NOCLIENTAUTH.

Ejemplos de acciones integradas en una directiva

En el siguiente ejemplo, si el cliente envía un cifrado que no sea un cifrado de categoría EXPORT, el dispositivo NetScaler solicita la autenticación del cliente. El cliente debe proporcionar un certificado válido para que la transacción se realice correctamente.

add ssl policy pol1 -rule CLIENT.SSL.CIPHER_EXPORTABLE.NOT -reqAction DOCLIENTAUTH
<!--NeedCopy-->

En los siguientes ejemplos se asume que la autenticación del cliente está habilitada.

Si la versión del certificado proporcionado por el usuario coincide con la versión de la directiva, no se realiza ninguna acción y se reenvía el paquete:

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction NOOP
<!--NeedCopy-->

Si la versión del certificado proporcionado por el usuario coincide con la versión de la directiva, se interrumpe la conexión:

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction DROP
<!--NeedCopy-->

Si la versión del certificado proporcionado por el usuario coincide con la versión de la directiva, la conexión se restablece:

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction RESET
<!--NeedCopy-->

Verificación del certificado de cliente con autenticación de cliente basada en directivas

Puede configurar la verificación del certificado de cliente como obligatoria u opcional cuando haya configurado la autenticación de clientes basada en directivas. El valor predeterminado es obligatorio.

Configure la verificación del certificado de cliente como opcional mediante la CLI

En la línea de comandos, escriba:

add ssl action <name> ((-clientAuth ( DOCLIENTAUTH | NOCLIENTAUTH ) [-clientCertVerification ( Mandatory | Optional )]
<!--NeedCopy-->

Ejemplo:

add ssl action sslact -clientauth DOCLIENTAUTH -clientcertverification OPTIONAL
<!--NeedCopy-->

Configure la verificación del certificado de cliente como opcional mediante la GUI

  1. Vaya a Administración del tráfico > SSL > Directivas.

  2. En la ficha Acciones SSL, haga clic en Agregar.

  3. Especifique un nombre y, en la lista de verificación de certificados de cliente, seleccione Opcional.

Acciones SSL definidas por el usuario

Además de las acciones integradas, también puedes configurar otras acciones SSL en función de tu implementación. Estas acciones se denominan acciones definidas por el usuario.

Configurar una acción SSL definida por el usuario mediante la CLI

En la línea de comandos, escriba los siguientes comandos para configurar una acción y comprobar la configuración:

add SSL action <name> -clientAuth(DOCLIENTAUTH | NOCLIENTAUTH) -clientCert (ENABLED | DISABLED) certHeader <string> -clientHeader <string> -clientCertSerialNumber (ENABLED | DISABLED) -certSerialHeader <string> -clientCertSubject (ENABLED | DISABLED) -certSubjectHeader <string> -clientCertHash (ENABLED | DISABLED) -certHashHeader <string> -clientCertIssuer (ENABLED | DISABLED) -certIssuerHeader <string> -sessionID (ENABLED | DISABLED) -sessionIDheader <string> -cipher (ENABLED | DISABLED) -cipherHeader <string> -clientCertNotBefore (ENABLED | DISABLED) -certNotBeforeHeader <string> -clientCertNotAfter (ENABLED | DISABLED) -certNotAfterHeader <string> -OWASupport (ENABLED | DISABLED)
<!--NeedCopy-->
show ssl action [<name>]
<!--NeedCopy-->

Ejemplo:

add ssl action Action-SSL-ClientCert -clientCert ENABLED -certHeader "X-Client-Cert"
<!--NeedCopy-->
show ssl action Action-SSL-ClientCert

1)      Name: Action-SSL-ClientCert
        Data Insertion Action:
        Cert Header: ENABLED            Cert Tag: X-Client-Cert
Done
<!--NeedCopy-->

Configure una acción SSL definida por el usuario mediante la interfaz gráfica de usuario

Vaya a Administración del tráfico > SSL > Directivas y, en la ficha Acciones, haga clic en Agregar.

Configurar una acción SSL para reenviar el tráfico del cliente a otro servidor virtual

Los administradores pueden configurar una acción SSL para reenviar el tráfico de clientes recibido en un servidor virtual SSL a otro servidor virtual a fin de evitar la descarga de SSL. O para finalizar la conexión en el dispositivo ADC. Este servidor virtual puede ser del tipo: SSL, TCP o SSL_BRIDGE. Por ejemplo, los administradores pueden optar por reenviar la solicitud a otro servidor virtual para que tome medidas adicionales en lugar de finalizar la conexión en alguno de los siguientes casos:

  • El dispositivo no tiene ningún certificado.
  • El dispositivo no admite un cifrado específico.

Para lograr lo anterior, se añade un nuevo punto de enlace “CLIENTHELLO_REQ” para evaluar el tráfico del cliente cuando se recibe un saludo del cliente. Si la directiva vinculada al servidor virtual que recibe el tráfico del cliente se evalúa como verdadera después de analizar el saludo del cliente, el tráfico se reenvía a otro servidor virtual. Si este servidor virtual es de tipo SSL, realiza el protocolo de enlace. Si este servidor virtual es de tipo TCP o SSL_BRIDGE, el servidor de fondo ejecuta el protocolo de enlace.

En la versión 12.1-49.x, solo se admiten las acciones de reenvío y restablecimiento para el punto de enlace CLIENTHELLO_REQ. Están disponibles los siguientes prefijos de expresión:

  • CLIENT.SSL.CLIENT_HELLO.CIPHERS.HAS_HEXCODE
  • CLIENT.SSL.CLIENT_HELLO.CLIENT_VERSION
  • CLIENT.SSL.CLIENT_HELLO.IS_RENEGOTIATE
  • CLIENT.SSL.CLIENT_HELLO.IS_REUSE
  • CLIENT.SSL.CLIENT_HELLO.IS_SCSV
  • CLIENT.SSL.CLIENT_HELLO.IS_SESSION_TICKET
  • CLIENT.SSL.CLIENT_HELLO.LENGTH
  • CLIENT.SSL.CLIENT_HELLO.SNI
  • CLIENT.SSL.CLIENT_HELLO.ALPN.HAS_NEXTPROTOCOL (de la versión 13.0 compilación 61.x)

Para obtener una descripción de estos prefijos, consulte Expresiones de directivas avanzadas: análisis de SSL.

forward Se agrega un parámetro al add SSL action comando y CLIENTHELLO_REQ se agrega un nuevo punto de enlace al bind ssl vserver comando.

Configuración mediante la CLI

En la línea de comandos, escriba:

add ssl action <name> -forward <virtual server name>

add ssl policy <name> -rule <expression> -action <string>

bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type <type>
<!--NeedCopy-->

EJEMPLO:

add ssl action act1 -forward v2

add ssl policy pol1 -rule client.ssl.client_hello.ciphers.has_hexcode(0x002f) -action act1

bind ssl vserver v1 -policyName pol1 -priority 1 -type CLIENTHELLO_REQ
<!--NeedCopy-->

Configuración mediante la GUI

Vaya a Administración del tráfico > SSL > Directivas.

Crear acción SSL:

  1. En Acciones SSL, haga clic en Agregar.
  2. En Crear acción SSL, especifique un nombre para la acción.
  3. En Forward Action Virtual Server, seleccione un servidor virtual existente o añada uno nuevo al que reenviar el tráfico.
  4. Si lo desea, defina otros parámetros.
  5. Haga clic en Create.

Cree una directiva SSL:

  1. En Directivas SSL, haga clic en Agregar.
  2. En Crear directiva SSL, especifique un nombre para la directiva.
  3. En Acción, selecciona la acción que creaste anteriormente.
  4. En el Editor de expresiones, introduzca la regla que desee evaluar.
  5. Haga clic en Create.

Cree o agregue una directiva de servidor virtual y enlace:

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Agregue o seleccione un servidor virtual.
  3. En Configuración avanzada, haga clic en Directivas SSL.
  4. Haga clic en la sección Directiva de SSL.
  5. En Seleccionar directiva, seleccione la directiva que creó anteriormente.
  6. En Vinculación de directivas, especifique una prioridad para la directiva.
  7. En Tipo, seleccione CLIENTHELLO_REQ.
  8. Haga clic en Bind.
  9. Haga clic en Listo.

Para obtener información sobre la configuración de extremo a extremo para los casos de uso más populares, consulte los siguientes temas:

Acción SSL para seleccionar selectivamente CA basadas en SNI para la autenticación del cliente

Solo puede enviar la lista de CA basadas en el SNI (dominio) en la solicitud de certificado del cliente, en lugar de la lista de todas las CA vinculadas a un servidor virtual SSL. Por ejemplo, cuando se recibe un saludo de un cliente, solo se envían los certificados de CA basados en la expresión de directiva SSL (por ejemplo, SNI). Para enviar un conjunto específico de certificados, debe crear un grupo de certificados de CA. A continuación, vincule este grupo a una acción SSL y vincule la acción a una directiva SSL. Si la directiva vinculada al servidor virtual que recibe el tráfico del cliente se evalúa como verdadera después de analizar el saludo del cliente, solo se envía un grupo de certificados de CA específico en el certificado de solicitud del cliente.

Antes, había que vincular los certificados de CA a un servidor virtual SSL. Con esta mejora, puede simplemente añadir grupos de certificados de CA y asociarlos a una acción SSL.

Nota: Habilite la autenticación del cliente y el SNI en el servidor virtual SSL. Enlaza los certificados SNI correctos al servidor virtual.

Siga estos pasos:

  1. Agregue un grupo de certificados de CA.

  2. Añada pares de claves de certificado.

  3. Enlazar los pares de claves de certificado a este grupo.

  4. Añada una acción SSL.

  5. Añada una directiva SSL. Especifique la acción en la directiva.

  6. Enlazar la directiva a un servidor virtual SSL. Especifique el punto de enlace como CLIENTHELLO_REQ.

Configuración mediante la CLI

En la línea de comandos, escriba los siguientes comandos en secuencia:

add ssl caCertGroup <caCertGroupName>
add ssl certkey <certkey_name> -cert <cert> -key <key>
bind ssl caCertGroup <caCertGroupName> <certkey_name>
add ssl action <name> -caCertGrpName <string>
add ssl policy <name> -rule <expression> -action <string>
bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type CLIENTHELLO_REQ
<!--NeedCopy-->

Ejemplo:

add ssl cacertGroup ca_cert_group

add ssl certkey ca_certkey1 -cert cacert1 -key cakey1
add ssl certkey ca_certkey2 -cert cacert2 -key cakey2
add ssl certkey snicert -cert snicert -key snikey

bind ssl cacertGroup ca_cert_group ca_certkey1
bind ssl caCertGroup ca_cert_group ca_certkey2
<!--NeedCopy-->
sh ssl caCertGroup ca_cert_group

CA GROUP NAME:     ca_cert_group
ACTIONS REFERRING: 1

1) CertKey Name: ca_certkey1   CA Certificate   CRLCheck: Optional   CA_Name Sent
2) CertKey Name: ca_certkey2   CA Certificate   CRLCheck: Optional   CA_Name Sent
<!--NeedCopy-->
add ssl action pick_ca_group -cacertGrpName ca_cert_group
<!--NeedCopy-->
sh ssl action pick_ca_group
1) Name: pick_ca_group
   Type: Data Insertion
   PickCaCertGroup: ca_cert_group
   Hits: 0
   Undef Hits: 0
   Action Reference Count: 1
<!--NeedCopy-->
add ssl policy snipolicy -rule client.ssl.client_hello.sni.contains("abc") -action pick_ca_group
bind ssl vserver v_SSL -policyName snipolicy -type CLIENTHELLO_REQ -priority 10
<!--NeedCopy-->
sh ssl policy snipolicy
    Name: snipolicy
    Rule: client.ssl.client_hello.sni.contains("abc")
    Action: pick_ca_group
    UndefAction: Use Global
    Hits: 0
    Undef Hits: 0


    Policy is bound to following entities
1)  Bound to: CLIENTHELLO_REQ VSERVER v_SSL
    Priority: 10
<!--NeedCopy-->
set ssl vserver v_SSL -clientauth ENABLED -SNIEnable ENABLED
bind ssl vserver v_SSL -certkeyName snicert -sniCert
<!--NeedCopy-->
sh ssl vserver v_SSL

    Advanced SSL configuration for VServer v_SSL:
    DH: DISABLED
    DH Private-Key Exponent Size Limit: 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: ENABLED
    OCSP Stapling: DISABLED
    HSTS: DISABLED
    HSTS IncludeSubDomains: NO
    HSTS Max-Age: 0
    SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Push Encryption Trigger: Always
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Zero RTT Early Data: DISABLED
    DHE Key Exchange With PSK: NO
    Tickets Per Authentication Context: 1

    ECC Curve: P_256, P_384, P_224, P_521

1)  CertKey Name: snicert   Server Certificate for SNI


    Data policy
1)  Policy Name: snipolicy  Priority: 10



1)  Cipher Name: DEFAULT
    Description: Default cipher list with encryption strength >= 128bit
<!--NeedCopy-->

Configuración mediante la GUI

Cree un grupo de certificados de CA y vincule los certificados al grupo:

  1. Vaya a Administración del tráfico > SSL > Grupo de certificados de CA.
  2. Haga clic en Agregar y especifique un nombre para el grupo.
  3. Haga clic en Create.
  4. Seleccione el grupo de certificados de CA y, a continuación, haga clic en Mostrar enlaces.
  5. Haga clic en Bind.
  6. En la página de enlace de certificados de CA, seleccione un certificado existente o haga clic en Agregar para agregar un certificado nuevo.
  7. Haga clic en Seleccionar y, a continuación, en Enlazar.
  8. Para vincular otro certificado, repita los pasos 5 a 7.
  9. Haga clic en Cerrar.

Vaya a Administración del tráfico > SSL > Directivas.

Crear acción SSL:

  1. En Acciones SSL, haga clic en Agregar.
  2. En Crear acción SSL, especifique un nombre para la acción.
  3. En Forward Action Virtual Server, seleccione un servidor virtual existente o añada un servidor virtual al que reenviar el tráfico.
  4. Si lo desea, defina otros parámetros.
  5. Haga clic en Create.

Cree una directiva SSL:

  1. En Directivas SSL, haga clic en Agregar.
  2. En Crear directiva SSL, especifique un nombre para la directiva.
  3. En Acción, seleccione la acción creada anteriormente.
  4. En el Editor de expresiones, introduzca la regla que desee evaluar.
  5. Haga clic en Create.

Cree o agregue una directiva de servidor virtual y enlace:

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Agregue o seleccione un servidor virtual.
  3. En Configuración avanzada, haga clic en Directivas SSL.
  4. Haga clic en la sección Directiva de SSL.
  5. En Seleccionar directiva, seleccione la directiva que creó anteriormente.
  6. En Vinculación de directivas, especifique una prioridad para la directiva.
  7. En Tipo, seleccione CLIENTHELLO_REQ.
  8. Haga clic en Bind.
  9. Haga clic en Listo.

Desvincular un grupo de certificados de CA mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > Grupo de certificados de CA.
  2. Seleccione un grupo de certificados y haga clic en Mostrar enlaces.
  3. Seleccione el certificado que desee eliminar del grupo y haga clic en Desvincular.
  4. Si se le solicita la confirmación, haga clic en **Sí••.
  5. Haga clic en Cerrar.

Eliminar un grupo de certificados de CA mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > Grupo de certificados de CA.
  2. Seleccione un grupo de certificados y haga clic en Eliminar.
  3. Si se le solicita la confirmación, haga clic en .