Cómo solucionar el error de enlace SSL fallido

Instalar un certificado SSL en tu sitio WordPress es como dar a tu sitio web una insignia de seguridad, que le permite transmitir datos de forma segura a través de HTTPS.
Sin embargo, incluso con las mejores intenciones, la configuración de SSL a veces puede toparse con un obstáculo, sobre todo cuando te encuentras con el error «SSL Handshake Failed».

Para entender por qué puede fallar un apretón de manos SSL/TLS, es importante comprender qué es exactamente este apretón de manos.
Tanto Secure Sockets Layer (SSL) como Transport Layer Security (TLS) son protocolos criptográficos que protegen las comunicaciones a través de una red informática.
Aunque existe una diferencia técnica entre SSL y TLS, a menudo se hace referencia a ellos indistintamente.
Para simplificar, utilizaremos SSL.

El apretón de manos SSL es esencialmente la conversación que mantienen el navegador y el servidor para acordar cómo comunicarse de forma segura.
Es la base de cualquier conexión HTTPS, e implica el intercambio de claves públicas y la creación de secretos compartidos.
Sin un apretón de manos satisfactorio, tu navegador y el sitio web no pueden establecer una conexión segura, lo que conlleva riesgos potenciales para la seguridad y una pérdida de confianza de los visitantes.

¿Qué causa un fallo en el handshake SSL?

Los fallos de enlace SSL, o el más específico Error 525 cuando se utiliza Cloudflare, indican que no se ha podido establecer el canal seguro de comunicación.
Este fallo puede deberse a varios problemas, tanto del lado del cliente como del lado del servidor.

Problemas del lado del cliente

  • Una configuración incorrecta de la fecha y la hora en el dispositivo del usuario puede interferir en la validación del certificado SSL.
  • Es posible que la configuración incorrecta del navegador o las versiones obsoletas del mismo no admitan los protocolos SSL necesarios.
  • Interceptación de la conexión por software o hardware de terceros, haciéndose pasar por un ataque man-in-the-middle.

Problemas del servidor

  • Los desajustes en el conjunto de cifrado se producen cuando el servidor y el cliente no admiten un conjunto común de algoritmos de cifrado.
  • Los protocolos no admitidos por el servidor pueden provocar un fallo si el cliente utiliza una versión del protocolo que el servidor no reconoce.
  • Los problemas con el propio certificado SSL, como que esté incompleto, no sea válido o haya caducado, pueden impedir un apretón de manos satisfactorio.

Cómo arreglar los fallos del apretón de manos SSL

El error «SSL Handshake Failed» puede deberse a varias razones, por lo que es un poco difícil de localizar y resolver de entrada.

Por suerte, tenemos varias estrategias para diagnosticar y abordar estos problemas.
Sumerjámonos paso a paso en enfoques eficaces para abordar y potencialmente resolver el error SSL Handshake Failed.

Comprueba la fecha y hora de tu sistema

El reloj de tu ordenador desempeña un papel sorprendentemente fundamental en el proceso de enlace SSL.
El certificado SSL tiene un periodo de validez, y si el reloj de tu ordenador está ajustado fuera de este periodo (demasiado lejos en el futuro o en el pasado), el handshake SSL fallará.
Esto se debe a que el handshake SSL implica verificar la validez del certificado SSL, lo que incluye comprobar la fecha y hora actuales.

Durante un apretón de manos SSL, el cliente (tu navegador) y el servidor comparten varias piezas de información, incluidos los certificados SSL.
Estos certificados son esencialmente pasaportes digitales que prueban la identidad del servidor.
Cada certificado tiene un periodo de validez determinado.
Si el reloj de tu sistema es incorrecto, podría parecer falsamente que estos pasaportes digitales han caducado o que aún no son válidos, lo que provocaría un handshake fallido.

Windows

Página de fecha y hora en la configuración de Windows

  1. Pulsa con el botón derecho del ratón sobre la visualización de la hora en la barra de tareas.
  2. Selecciona «Ajustar fecha/hora».
  3. Asegúrate de que la opción «Ajustar la hora automáticamente» está activada.
    Si ya está activada pero la hora es incorrecta, desactívala y actívala de nuevo.
  4. Si el problema persiste, ajusta manualmente la fecha y la hora desactivando «Ajustar la hora automáticamente» y haciendo clic en «Cambiar» en «Ajustar la fecha y la hora manualmente».
  5. Después de realizar los ajustes, reinicia tu navegador e intenta acceder de nuevo al sitio web protegido por SSL.

Mac

Página de fecha y hora en los ajustes del Mac

  1. Haz clic en el menú Apple y selecciona «Preferencias del Sistema».
  2. Elige «Fecha y Hora».
  3. Si el candado de la parte inferior izquierda está bloqueado, haz clic en él e introduce tu contraseña de administrador para realizar cambios.
  4. Marca «Establecer fecha y hora automáticamente» y selecciona la zona horaria adecuada.
    Si ya está seleccionada pero es incorrecta, desmarca y vuelve a marcarla.
  5. Cierra Preferencias del Sistema y reinicia tu navegador para probar los cambios.

Este paso, aunque aparentemente sencillo, es crucial para el intrincado proceso de verificación del certificado SSL durante el apretón de manos.

Comprueba la validez de tu certificado SSL

Los certificados SSL son la columna vertebral de la comunicación segura en Internet, ya que cifran los datos en tránsito y verifican la identidad de los sitios web.
Tienen una fecha de caducidad para garantizar que la información que contienen está actualizada y que los estándares de cifrado en los que se basan siguen siendo seguros.
Un certificado caducado o inválido es como un pasaporte caducado; ya no es una forma fiable de identificación.

Los certificados pueden caducar, ser revocados o perder su validez por diversos motivos:Caducidad: Para garantizar una seguridad continua, los certificados se emiten por una duración limitada.
Es necesario renovarlos periódicamente para mantener una conexión segura.

Revocación: Los certificados pueden ser revocados antes de su fecha de caducidad si se ven comprometidos, dejan de ser seguros o cambian los datos que certifican.

Problemas de instalación: A veces, puede que un certificado no se instale correctamente, faltando certificados de cadena cruciales, lo que también puede provocar fallos en el apretón de manos.

Utilizar un comprobador de certificados SSL

El Laboratorio SSL de Qualys prueba las configuraciones de los servidores SSL.

  1. Navega hasta un sitio web fiable de comprobación de certificados SSL, como la prueba de servidores SSL de Qualys SSL Labs.
  2. Introduce el nombre de tu dominio en el campo «Nombre de host» y pulsa «Enviar».
  3. Espera a que la herramienta analice la configuración SSL/TLS de tu sitio.
  4. Comprueba la fecha de caducidad.
    Si tu certificado ha caducado, tendrás que renovarlo.
  5. Asegúrate de que toda la cadena de certificados está presente y es válida.
    La falta de certificados intermedios puede causar problemas.
  6. Comprueba que tu certificado no ha sido revocado.

Renovar o reemitir tu certificado SSL

Si tu certificado ha caducado o no es válido:

  1. Ponte en contacto con tu autoridad de certificación (CA) para obtener instrucciones sobre la renovación.
    Este proceso suele implicar la generación de una nueva solicitud de firma de certificado (CSR) en tu servidor.
  2. Sigue el proceso de la CA para validar de nuevo la propiedad de tu dominio, si es necesario.
  3. Una vez emitido, instala el nuevo certificado en tu servidor, asegurándote de incluir cualquier certificado intermedio proporcionado por la CA.
  4. Vuelve a probar tu sitio web utilizando el comprobador de certificados SSL para asegurarte de que todo está correctamente configurado.

Si tu sitio web está alojado en 10Web, puedes generar un certificado SSL Let’s Encrypt gratuito desde tu panel de control.

Generar ssl gratis en 10Web

Actualiza tu navegador

Los navegadores son los vehículos a través de los cuales viajamos por Internet.
Un navegador anticuado puede no entender o no soportar los últimos protocolos de seguridad, lo que provoca un fallo en la comunicación durante el apretón de manos SSL.
Aquí es donde falla el apretón de manos, no porque las credenciales no sean válidas, sino porque el navegador y el servidor no pueden ponerse de acuerdo sobre cómo comunicarse de forma segura.

Si el servidor admite una versión más reciente de TLS (por ejemplo, TLS 1.2 o 1.3) y tu navegador no, no podrán establecer una conexión segura.
Es como intentar sintonizar una señal de TV digital con una TV analógica sin el conversor adecuado.

A veces, el problema no está en la versión del navegador, sino en su configuración.
Una configuración incorrecta puede impedir un apretón de manos satisfactorio.
Además, ciertos plugins o extensiones pueden interferir con el procesamiento SSL/TLS, provocando fallos en el handshake.

Puedes intentar acceder al sitio web utilizando un navegador diferente.
Si funciona, puede que el problema esté en tu navegador principal.

Actualizar Chrome

Página de Ayuda de Chrome con las actualizaciones de Chrome seleccionadas

Haz clic en los tres puntos de la esquina superior derecha, ve a «Ayuda» > «Acerca de Google Chrome».

Chrome buscará e instalará automáticamente cualquier actualización.

Actualizar Firefox

Página de actualización del navegador Firefox.

Abre el menú, haz clic en «Ayuda» > «Acerca de Firefox».

Firefox también buscará actualizaciones y te pedirá que reinicies para aplicarlas.

Actualizar Safari

Ventana de actualización del sistema del Mac

Las actualizaciones de Safari se incluyen con las actualizaciones de macOS. Ve a «Preferencias del Sistema» > «Actualización de Software» para comprobar si hay nuevas actualizaciones.

Restablecer la configuración predeterminada del navegador

Esto puede ayudar a eliminar cualquier problema de configuración que pueda causar fallos en el apretón de manos.
El proceso varía según el navegador, pero normalmente puedes encontrarlo en la configuración, en «Avanzado» o «Restablecer».

Comprueba la compatibilidad con el protocolo TLS/SSL

Un desajuste de protocolo entre el navegador y el servidor puede provocar un fallo en el handshake SSL.
Esto ocurre, por ejemplo, si el servidor está configurado para soportar sólo TLS 1.2, pero el navegador sigue funcionando con protocolos más antiguos como TLS 1.0 o TLS 1.1, lo que provoca que no haya un protocolo común para la comunicación.

Cromo

Propiedades de Internet TLS

  1. Ve a «Opciones de Internet» > pestaña «Avanzadas».
  2. En «Seguridad», asegúrate de que están marcadas las opciones TLS 1.2 y TLS 1.3.
  3. Desmarca SSL 2.0, SSL 3.0, TLS 1.0 y TLS 1.1.

Safari

TLS 1.2 está activado por defecto.
Asegúrate de que tu macOS está actualizado para admitir los protocolos más recientes.

Configura los protocolos y suites de cifrado compatibles

Los protocolos y las suites de cifrado son esenciales para definir los parámetros de seguridad de una conexión SSL/TLS.
Protocolos como TLS 1.2 y TLS 1.3 especifican las normas generales de seguridad, mientras que las suites de cifrado determinan el algoritmo de cifrado utilizado.
Si el cliente y el servidor no son compatibles con un conjunto común de protocolos y conjuntos de cifrado, no podrán establecer una conexión segura, lo que provocará un fallo en el enlace SSL.

Los protocolos son las normas que rigen el intercambio seguro de datos.
Los protocolos más antiguos, como SSL 3.0 y TLS 1.0, se consideran ahora inseguros y deben desactivarse en favor de versiones más recientes, como TLS 1.2 y TLS 1.3.

Un conjunto de cifrado es una combinación de algoritmos de cifrado, intercambio de claves y autenticación.
Estas suites determinan cómo protegen los protocolos de seguridad los datos en tránsito.
La elección del conjunto de cifrado afecta a la seguridad y al rendimiento de la conexión SSL/TLS.

El servidor tiene que estar configurado para admitir un conjunto amplio pero seguro de protocolos y conjuntos de cifrado para adaptarse a varios clientes, manteniendo al mismo tiempo un alto nivel de seguridad.

Revisar y ajustar la configuración del servidor

  1. Utiliza herramientas como OpenSSL para obtener una lista de los protocolos y conjuntos de cifrado que admite tu servidor.
    El comando `openssl ciphers -v` puede mostrarte una lista detallada.
  2. Asegúrate de que la configuración de tu servidor desactiva explícitamente los protocolos más antiguos e inseguros, como SSL 2.0, SSL 3.0 y TLS 1.0.
    El método para hacerlo varía según el software del servidor (por ejemplo, Apache, Nginx).
  3. Configura tu servidor para dar prioridad a las suites de cifrado seguras, normalmente las que admiten el secreto hacia adelante y algoritmos de cifrado fuertes.
    Evita los conjuntos de cifrado que utilicen algoritmos de cifrado débiles, como RC4 o MD5.
  4. Al tiempo que das prioridad a la seguridad, asegúrate de que tu servidor admite los conjuntos de cifrado y protocolos que suelen utilizar la mayoría de los clientes.
    Esto podría requerir habilitar TLS 1.2 y TLS 1.3, asegurándote de que los conjuntos de cifrado admitidos son compatibles con la mayoría de los navegadores y clientes modernos.

Ejemplo apache: Edita el archivo `ssl.conf` para incluir directivas como `SSLProtocol -all +TLSv1.2 +TLSv1.3` y `SSLCipherSuite` con una lista de los conjuntos de cifrado deseados.Ejemplo de Nginx: En el archivo `nginx.conf`, utiliza la directiva `ssl_protocols` para especificar `TLSv1.2 TLSv1.3;` y `ssl_ciphers` para listar tus suites de cifrado preferidas.

Tras realizar los cambios, utiliza herramientas de comprobación de la configuración SSL/TLS, como la Prueba de Servidor SSL de Qualys SSL Labs, para evaluar la postura de seguridad de tu servidor.
Esta prueba pondrá de manifiesto cualquier problema de compatibilidad, protocolo inseguro o conjunto de cifrado que hayas podido pasar por alto.

Asegúrate de que tu servidor está correctamente configurado para SNI

La Indicación de Nombre de Servidor (SNI) desempeña un papel crucial, especialmente cuando se trata de fallos en el handshake SSL.
SNI permite a un servidor web alojar varios certificados SSL para varios dominios en una única dirección IP.
Es una solución económica y eficaz para el alojamiento web, especialmente en entornos donde las direcciones IP son escasas.
Sin embargo, si SNI no está bien configurado, puede que el servidor no presente el certificado SSL correcto al cliente, lo que provocaría un fallo en el handshake SSL.

Durante el intercambio SSL, el cliente envía un mensaje «ClientHello» que incluye el nombre de host al que intenta conectarse.
A continuación, el servidor utiliza esta información para seleccionar el certificado SSL adecuado para ese nombre de host.
Sin SNI, el servidor no tendría forma de saber qué certificado utilizar en entornos multidominio, ya que recibiría la solicitud sin información específica del dominio.

Existen herramientas y métodos para comprobar si un sitio requiere SNI y si el servidor está correctamente configurado para soportarlo.
Utilizando estas herramientas, puedes determinar rápidamente si la configuración incorrecta de SNI es la causa de tus problemas de enlace SSL.

Utilizar la prueba de servidor SSL de Qualys

  1. Navega hasta el sitio de Prueba del Servidor SSL e introduce tu nombre de dominio.
  2. Una vez finalizada la prueba, comprueba los resultados para ver si aparece un mensaje indicando si el sitio requiere soporte SNI.
    Esta es una forma sencilla de identificar si tu sitio está configurado para utilizar SNI.

Utilizar OpenSSL para probar la compatibilidad SNI

Sin SNI: Ejecuta openssl s_client -conectar host:puerto.
This command tries to establish an SSL connection without specifying the hostname.

Con SNI: Ejecuta openssl s_client -conectar host:puerto -nombre servidor host.
This command explicitly sends the hostname in the ClientHello message.

Compara los certificados devueltos por estos dos comandos.
Si son iguales y corresponden correctamente al host solicitado, SNI es compatible y está correctamente configurado.
Si no, puede haber un problema de configuración.

Resolver problemas de configuración SNI

Comprueba la configuración del servidor: Asegúrate de que el software de tu servidor (Apache, Nginx, etc.) está configurado para soportar SNI.
Esto suele implicar especificar los archivos de certificado correctos para cada dominio alojado en la configuración del servidor.

Considera una IP dedicada: Si persisten los problemas de configuración de SNI o si alojas a clientes que utilizan navegadores muy antiguos o sistemas que no admiten SNI, puede que tengas que cambiar a una dirección IP dedicada para cada certificado SSL.
Sin embargo, esto es menos habitual con la amplia adopción del soporte SNI.

Conclusión

En nuestra exploración de la resolución de los fallos del protocolo de enlace SSL, hemos recorrido una serie de soluciones, desde comprobaciones sencillas del sistema hasta intrincadas configuraciones del servidor.
Este viaje pone de manifiesto la naturaleza compleja pero crítica de las comunicaciones seguras cliente-servidor.
Herramientas como la Prueba de Servidor SSL de Qualys se han revelado de valor incalculable para diagnosticar problemas, destacando la importancia de la compatibilidad entre los protocolos cliente y servidor, y la necesidad de actualizaciones y configuraciones periódicas.
La esencia de este blog apunta hacia un enfoque proactivo para mantener conexiones SSL/TLS seguras, subrayando el papel fundamental de garantizar unas comunicaciones fluidas y cifradas para una experiencia web más segura.

Say goodbye to website errors

Share article

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Your email address will never be published or shared. Required fields are marked *

Comment*

Name *