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
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
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
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
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 ((-clientAuth ( DOCLIENTAUTH | NOCLIENTAUTH ) [-clientCertVerification ( Mandatory | Optional )]
Ejemplo:
add ssl action sslact -clientauth DOCLIENTAUTH -clientcertverification OPTIONAL
Configure la verificación del certificado de cliente como opcional mediante la GUI
Vaya aAdministración del tráfico > SSL > Directivas.
En la fichaAcciones SSL, haga clic enAgregar.
Especifique un nombre y, en la lista deverificación de certificados de cliente, seleccioneOpcional.
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:
添加SSL行动<名称> clientauth (DOCLIENTAUTH | NOCLIENTAUTH) -clientCert (ENABLED | DISABLED) certHeader -clientHeader -clientCertSerialNumber (ENABLED | DISABLED) -certSerialHeader -clientCertSubject (ENABLED | DISABLED) -certSubjectHeader -clientCertHash (ENABLED | DISABLED) -certHashHeader -clientCertIssuer (ENABLED | DISABLED) -certIssuerHeader -sessionID (ENABLED | DISABLED) -sessionIDheader -cipher (ENABLED | DISABLED) -cipherHeader -clientCertNotBefore (ENABLED | DISABLED) -certNotBeforeHeader -clientCertNotAfter (ENABLED | DISABLED) -certNotAfterHeader -OWASupport (ENABLED | DISABLED)
show ssl action []
Ejemplo:
add ssl action Action-SSL-ClientCert -clientCert ENABLED -certHeader "X-Client-Cert"
show ssl action Action-SSL-ClientCert 1) Name: Action-SSL-ClientCert Data Insertion Action: Cert Header: ENABLED Cert Tag: X-Client-Cert Done
Configure una acción SSL definida por el usuario mediante la interfaz gráfica de usuario
Vaya aAdministración del tráfico > SSL > Directivasy, en la fichaAcciones, haga clic enAgregar.
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, consulteExpresiones de directivas avanzadas: análisis de SSL.
forward
Se agrega un parámetro aladd SSL action
comando yCLIENTHELLO_REQ
se agrega un nuevo punto de enlace albind ssl vserver
comando.
Configuración mediante la CLI
En la línea de comandos, escriba:
add ssl action -forward add ssl policy -rule -action bind ssl vserver -policyName -priority -type
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
Configuración mediante la GUI
Vaya aAdministración del tráfico > SSL > Directivas.
Crear acción SSL:
- EnAcciones SSL, haga clic enAgregar.
- EnCrear acción SSL, especifique un nombre para la acción.
- EnForward Action Virtual Server, seleccione un servidor virtual existente o añada uno nuevo al que reenviar el tráfico.
- Si lo desea, defina otros parámetros.
- Haga clic enCreate.
Cree una directiva SSL:
- EnDirectivas SSL, haga clic enAgregar.
- EnCrear directiva SSL, especifique un nombre para la directiva.
- EnAcción, selecciona la acción que creaste anteriormente.
- En elEditor de expresiones, introduzca la regla que desee evaluar.
- Haga clic enCreate.
Cree o agregue una directiva de servidor virtual y enlace:
- Vaya aAdministración del tráfico>Equilibrio de carga>Servidores virtuales.
- Agregue o seleccione un servidor virtual.
- EnConfiguración avanzada, haga clic enDirectivas SSL.
- Haga clic en la sección Directiva de SSL.
- EnSeleccionar directiva, seleccione la directiva que creó anteriormente.
- EnVinculación de directivas, especifique una prioridad para la directiva.
- EnTipo, seleccioneCLIENTHELLO_REQ.
- Haga clic enBind.
- Haga clic enListo.
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 autenticacion del cliente y el SNI enel servidor virtual SSL. Enlaza los certificados SNI correctos al servidor virtual.
Siga estos pasos:
Agregue un grupo de certificados de CA.
Añada pares de claves de certificado.
Enlazar los pares de claves de certificado a este grupo.
Añada una acción SSL.
Añada una directiva SSL. Especifique la acción en la directiva.
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 add ssl certkey -cert -key bind ssl caCertGroup add ssl action -caCertGrpName add ssl policy -rule -action bind ssl vserver -policyName -priority -type CLIENTHELLO_REQ
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
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
add ssl action pick_ca_group -cacertGrpName ca_cert_group
sh ssl行动pick_ca_group 1)名称:pick_ca_group Type: Data Insertion PickCaCertGroup: ca_cert_group Hits: 0 Undef Hits: 0 Action Reference Count: 1
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
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
set ssl vserver v_SSL -clientauth ENABLED -SNIEnable ENABLED bind ssl vserver v_SSL -certkeyName snicert -sniCert
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
Configuración mediante la GUI
Cree un grupo de certificados de CA y vincule los certificados al grupo:
- Vaya aAdministración del tráfico > SSL > Grupo de certificados de CA.
- Haga clic enAgregary especifique un nombre para el grupo.
- Haga clic enCreate.
- Seleccione elgrupo de certificados de CAy, a continuación, haga clic enMostrar enlaces.
- Haga clic enBind.
- En la página deenlace de certificados de CA, seleccione un certificado existente o haga clic en Agregar para agregar un certificado nuevo.
- Haga clic enSeleccionary, a continuación, enEnlazar.
- Para vincular otro certificado, repita los pasos 5 a 7.
- Haga clic enCerrar.
Vaya aAdministración del tráfico > SSL > Directivas.
Crear acción SSL:
- EnAcciones SSL, haga clic enAgregar.
- EnCrear acción SSL, especifique un nombre para la acción.
- EnForward Action Virtual Server, seleccione un servidor virtual existente o añada un servidor virtual al que reenviar el tráfico.
- Si lo desea, defina otros parámetros.
- Haga clic enCreate.
Cree una directiva SSL:
- EnDirectivas SSL, haga clic enAgregar.
- EnCrear directiva SSL, especifique un nombre para la directiva.
- EnAcción, seleccione la acción creada anteriormente.
- En elEditor de expresiones, introduzca la regla que desee evaluar.
- Haga clic enCreate.
Cree o agregue una directiva de servidor virtual y enlace:
- Vaya aAdministración del tráfico>Equilibrio de carga>Servidores virtuales.
- Agregue o seleccione un servidor virtual.
- EnConfiguración avanzada, haga clic enDirectivas SSL.
- Haga clic en la sección Directiva de SSL.
- EnSeleccionar directiva, seleccione la directiva que creó anteriormente.
- EnVinculación de directivas, especifique una prioridad para la directiva.
- EnTipo, seleccioneCLIENTHELLO_REQ.
- Haga clic enBind.
- Haga clic enListo.
Desvincularun grupo de certificados de CA mediante la interfaz gráfica de usuario
- Vaya aAdministración del tráfico > SSL > Grupo de certificados de CA.
- Seleccione un grupo de certificados y haga clic enMostrar enlaces.
- Seleccione el certificado que desee eliminar del grupo y haga clic enDesvincular.
- Si se le solicita la confirmación, haga clic en **Sí••.
- Haga clic enCerrar.
Eliminar un grupo de certificados de CA mediante la interfaz gráfica de usuario
- Vaya aAdministración del tráfico > SSL > Grupo de certificados de CA.
- Seleccione un grupo de certificados y haga clic enEliminar.
- Si se le solicita la confirmación, haga clic enSí.
En este artículo
- Ejemplos de acciones integradas en una directiva
- Verificación del certificado de cliente con autenticación de cliente basada en directivas
- Acciones SSL definidas por el usuario
- Configurar una acción SSL para reenviar el tráfico del cliente a otro servidor virtual
- Acción SSL para seleccionar selectivamente CA basadas en SNI para la autenticación del cliente