¿Por qué aparece un error de negociación SSL/TLS del cliente cuando intento conectarme a mi equilibrador de carga?
Se muestra un error de negociación entre la capa de sockets seguros (SSL) y la seguridad de la capa de transporte (TLS) cuando intento conectarme a mi equilibrador de carga. ¿Por qué aparece este error?
Breve descripción
Cuando se produce un error de negociación TLS del cliente, significa que una conexión TLS iniciada por el cliente no ha podido establecer una sesión con el equilibrador de carga. Los errores de negociación TLS se producen cuando los clientes intentan conectarse a un equilibrador de carga mediante un protocolo o un cifrado que la política de seguridad del equilibrador de carga no admite. Para establecer una conexión TLS, asegúrese de que su cliente admite lo siguiente:
- Uno o varios cifrados coincidentes
- Un protocolo especificado en la política de seguridad
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de la AWS CLI.
Identificación de la política de seguridad del equilibrador de carga
En la Consola de administración de AWS:
1. Abra la consola de Amazon Elastic Compute Cloud (Amazon EC2).
2. En el panel de navegación, en EQUILIBRIO DE CARGA, seleccione Equilibradores de carga.
3. Seleccione el equilibrador de carga y, a continuación, elija Agentes de escucha.
4. Visualice la política de seguridad.
En el caso de los equilibradores de carga de aplicación y de los equilibradores de carga de red, busque la política de seguridad en la columna Política de seguridad.
En el caso de los equilibradores de carga clásicos, seleccione Cambiar en la columna Cifrado para ver la política de seguridad.
En la AWS CLI:
- En el caso de los equilibradores de carga de aplicación y los equilibradores de carga de red, ejecute el comando describe-listeners.
- En el caso de los equilibradores de carga clásicos, ejecute el comando describe-load-balancers.
Determinación de los protocolos y los cifrados compatibles con la política de seguridad del equilibrador de carga
Los equilibradores de carga clásicos admiten políticas de seguridad personalizadas. Sin embargo, ni los equilibradores de carga de aplicación ni los equilibradores de carga de red admiten políticas de seguridad personalizadas. Para obtener más información acerca de las políticas de seguridad, incluida la política de seguridad predeterminada, consulte:
- Application Load Balancer security policies
- Network Load Balancer security policies
- Classic Load Balancer security policies
(Opcional) Prueba de la política de seguridad del equilibrador de carga
Para probar los protocolos y los cifrados compatibles con la política de seguridad del equilibrador de carga, utilice una herramienta de línea de comandos de código abierto, como sslscan.
Utilización del comando sslscan
Puede instalar y ejecutar el comando sslscan en cualquier instancia de Linux de Amazon EC2 o desde su sistema local. Asegúrese de que el equilibrador de carga que desea probar acepte conexiones TLS desde la dirección IP de origen. Para usar sslscan en una instancia de EC2 de Amazon Linux:
1. Habilite el repositorio Extra Packages for Enterprise Linux (EPEL).
2. Ejecute el comando sudo yum install sslscan.
3. Ejecute el siguiente comando para analizar el equilibrador de carga en busca de los cifrados compatibles. No olvide sustituir example.com por el nombre de su dominio.
[ec2-user@ ~]$ sslscan --show-ciphers example.com
Utilización del comando openssl
Como alternativa, también puede probar la política de seguridad del equilibrador de carga con el comando openssl. Puede ejecutar el comando openssl en cualquier instancia de Linux de Amazon EC2 o desde su sistema local.
Para generar un listado de los cifrados compatibles en el caso de una versión concreta de SSL/TLS, utilice el comando openssl ciphers:
*$* openssl ciphers -v
Por ejemplo, el siguiente comando mostraría los cifrados compatibles con la versión TLSv1.2:
*$* openssl ciphers -V | grep "TLSv1.2"
Utilice el comando s_client para probar los conjuntos de cifrado y las versiones de TLS. Para conocer la solidez de determinados conjuntos de cifrado, puede utilizar un repositorio de sitios web como ciphersuites.info. Por ejemplo, el siguiente comando mostraría los cifrados de www.example.com:
openssl s_client -connect example.com:443
Por ejemplo, el conjunto TLS_PSK_WITH_AES_128_CBC_SHA se considera débil. Si usa el conjunto para un servidor, se mostrará el siguiente error:
openssl s_client -connect example.com:443 -cipher PSK-AES128-CBC-SHA -quiet 140062732593056:error:140740B5:SSL routines:SSL23_CLIENT_HELLO:no ciphers available:s23_clnt.c:508:
El conjunto ECDHE-RSA-AES128-GCM-SHA256 se considera fuerte. Si usa el conjunto para el servidor, se mostrará un mensaje de éxito similar al siguiente:
openssl s_client -connect example.com:443 -cipher ECDHE-RSA-AES128-GCM-SHA256 New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-GCM-SHA256 Session-ID: 73B49649716645B90D13E29656AEFEBF289A4956301AD9BC65D4832794E282CD Session-ID-ctx: Master-Key: C738D1E7160421281C4CAFEA49941895430168A4028B5D5F6CB6739B58A15235F640A5D740D368A4436CCAFD062B3338 Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1647375807 Timeout : 300 (sec) Verify return code: 0 (ok)
También puede usar el comando openssl para especificar la versión del protocolo TLS utilizada en la conexión. En el siguiente ejemplo se muestra una prueba que verifica si el servidor admite TLS 1.1:
openssl s_client -connect example.com:443 -tls1_1 -quiet depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2 verify return:1 depth=1 C = US, O = DigiCert Inc, CN = DigiCert Global CA G2 verify return:1 depth=0 CN = *.peg.a2z.com verify return:1
Actualización de la política de seguridad del equilibrador de carga si es necesario
Para actualizar la política de seguridad del equilibrador de carga con el fin de utilizar protocolos o cifrados compatibles y lograr el nivel de seguridad deseado, siga estos pasos:
- Actualice una política de seguridad del equilibrador de carga de aplicación.
- Actualice una política de seguridad del equilibrador de carga de red.
- Actualice una política de seguridad del equilibrador de carga clásico.
Vídeos relacionados
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años