La instalación de un certificado de Secure Sockets Layer (SSL) en tu sitio de WordPress te permite utilizar HTTPS para garantizar conexiones seguras. Desafortunadamente, hay una variedad de cosas que pueden salir mal en el proceso de confirmar un certificado SSL válido y hacer una conexión entre el servidor de tu sitio y el navegador de un visitante.
Si has encontrado un mensaje de error de «SSL Handshake Failed» y estás confundido en cuanto a su significado, no estás solo. Es un error común que no te dice mucho por sí solo. Aunque puede ser una experiencia frustrante, la buena noticia es que hay pasos sencillos que puedes seguir para resolver el problema.
En este post, explicaremos qué es el error del SSL Handshake Failed y qué lo causa. Luego te proporcionaremos varios métodos que puedes utilizar para solucionarlo.
¡Empecemos!
Una introducción al SSL Handshake
Antes de profundizarnos en lo que causa un error SSL Handshake Failed o TLS , es útil entender qué es SSL/TLS Handshake Failed. Secure Sockets Layer (SSL) y Transport Layer Security (TLS) son protocolos que se utilizan para autenticar las transferencias de datos entre servidores y sistemas externos como los navegadores.
Los certificados SSL son necesarios para asegurar tu sitio web usando HTTPS. No profundizaremos mucho en la diferencia entre TLS y SSL ya que es una diferencia menor. Los términos se usan a menudo de forma intercambiable, así que para simplificar, usaremos «SSL» para referirnos a ambos.
Con eso fuera del camino, un SSL Handshake es el primer paso en el proceso de establecer una conexión HTTPS. Para autenticar y establecer la conexión, el navegador del usuario y el servidor del sitio web deben pasar por una serie de comprobaciones (el handshake), que establecen los parámetros de la conexión HTTPS.
Expliquémoslo: el cliente (típicamente el navegador) envía una solicitud de conexión segura al servidor. Después de enviar la solicitud, el servidor envía una clave pública a tu ordenador y comprueba esa clave con una lista de certificados. El ordenador genera entonces una clave y la codifica, utilizando la clave pública enviada desde el servidor.
Para resumir la historia, sin el SSL handshake, no se hará una conexión segura. Esto puede suponer un riesgo de seguridad significativo. Además, hay muchas partes móviles involucradas en el proceso.
Eso significa que hay muchas oportunidades diferentes de que algo salga mal y cause un fallo en el apretón de manos, o incluso lleve al error de «la conexión no es privada«, haciendo que los visitantes se vayan.
Comprensión de las causas de los SSL Handshake Failures
Un fallo o error de SSL handshake 525 significa que el servidor y el navegador no pudieron establecer una conexión segura. Esto puede suceder por una variedad de razones.
Generalmente, un error 525 significa que el SSL handshake entre un dominio que usa Cloudflare y el servidor web de origen falló:
Sin embargo, también es importante entender que los errores de SSL pueden ocurrir en el lado del cliente o del servidor. Las causas comunes de los errores de SSL en el lado del cliente incluyen:
- La fecha u hora equivocada en el dispositivo del cliente.
- Un error en la configuración del navegador.
- Una conexión que está siendo interceptada por un tercero.
Algunas causas del lado del servidor incluyen:
- Un desajuste de la suite de cifrado.
- Un protocolo usado por el cliente que no es soportado por el servidor.
- Un certificado incompleto, inválido o caducado.
Típicamente, si el SSL handshake falla, el problema puede atribuirse a algo malo con el sitio web o el servidor y sus configuraciones de SSL.
¿Cómo arreglar el error del SSL Handshake Failed? (5 métodos)
Hay varias causas potenciales detrás del error de «SSL Handshake Failed». Así que no hay una respuesta simple cuando se trata de cómo debes arreglarlo.
Afortunadamente, hay un puñado de métodos que puedes utilizar para comenzar a explorar los problemas potenciales y resolverlos uno por uno. Echemos un vistazo a cinco estrategias que puedes utilizar para tratar de arreglar el error del SSL Handshake Failed.
1. Actualiza la fecha y la hora de tu sistema
Empecemos con una de las causas más improbables, pero que es increíblemente fácil de corregir si es el problema: el reloj de tu ordenador.
Si tu sistema utiliza una fecha y hora equivocadas, eso puede interrumpir el SSL handshake. Cuando el reloj del sistema es diferente de la hora real, por ejemplo, si se fija demasiado lejos en el futuro, puede interferir con la verificación del certificado SSL.
El reloj de tu ordenador podría haberse ajustado incorrectamente debido a un error humano o simplemente a un fallo en la configuración. Sea cual sea la razón, es una buena idea comprobar y asegurarse de que la hora del sistema es correcta, y actualizarla si no lo es.
Por supuesto, si tu reloj muestra la información correcta, es seguro asumir que esta no es la fuente del problema del «SSL Handshake Failed».
2. Comprueba si tu certificado SSL es válido
Las fechas de caducidad se colocan en los certificados SSL, para ayudar a asegurar que su información de validación sigue siendo precisa. Generalmente, la validez de estos certificados dura entre seis meses y dos años.
Si un certificado SSL es revocado o caducado, el navegador lo detectará y no podrá completar el SSL handshake. Si ha pasado más de un año aproximadamente desde instalar un certificado SSL en tu sitio web, puede que sea el momento de volver a emitirlo.
Para ver el estado de tu certificado SSL, puedes utilizar una herramienta de comprobación de certificados SSL como la que ofrece Qualys:
Esta herramienta es fiable y de uso libre. Todo lo que necesitas hacer es introducir tu nombre de dominio en el campo Nombre de host, y luego hacer clic en Enviar. Una vez que el verificador haya terminado de analizar la configuración de SSL de tu sitio, te presentará algunos resultados:
En esta página puedes averiguar si tu certificado sigue siendo válido y ver si ha sido revocado por alguna razón.
En cualquier caso, la actualización de tu certificado SSL debería resolver el error del SSL handshake (y es vital para mantener tu sitio y tu tienda WooCommerce segura).
3. Configura tu navegador para el último soporte de protocolo SSL/TLS
A veces la mejor manera de determinar la causa fundamental de un problema es mediante el proceso de eliminación. Como mencionamos anteriormente, el SSL Handshake Failed puede ocurrir a menudo debido a una mala configuración del navegador.
La forma más rápida de determinar si un navegador en particular es el problema es intentar cambiar a uno diferente. Esto puede al menos ayudar a reducir el problema. También puedes intentar desactivar cualquier complemento y restablecer la configuración predeterminada del navegador.
Otro posible problema relacionado con el navegador es un desajuste de protocolo. Por ejemplo, si el servidor sólo admite TLS 1.2, pero el navegador sólo está configurado para TLS 1.0 o TLS 1.1, no hay ningún protocolo de soporte mutuo disponible. Esto llevará inevitablemente a un fallo en el protocolo SSL.
La forma de comprobar si se produce este problema varía en función del navegador que utilices. A modo de ejemplo, veremos cómo funciona el proceso en Chrome. En primer lugar, abre el navegador y ve a Configuración > Avanzado. De esta forma, se ampliarán varias opciones de menú.
En la sección Sistema, haz clic en Abrir la configuración de proxy del equipo:
Esto abrirá una nueva ventana. A continuación, selecciona la pestaña Avanzado. En la sección Seguridad, comprueba si la casilla junto a Usar TLS 1.2 está seleccionada. Si no lo está, marca esa opción:
También se recomienda desmarcar las casillas de SSL 2.0 y SSL 3.0.
Lo mismo se aplica a TLS 1.0 y TLS 1.1 ya que están siendo eliminados. Cuando termines, haz clic en el botón OK, y comprueba si el error SSL handshake se ha resuelto.
Ten en cuenta que si utilizas Apple Safari o Mac OS no hay opción para activar o desactivar los protocolos SSL. TLS 1.2 está automáticamente activado de forma predeterminada. Si estás usando Linux, puedes consultar la guía de Red Hat sobre el endurecimiento de TLS.
4. Verifica que tu servidor esté configurado correctamente para soportar SNI
También es posible que el fallo SSL handshake sea causado por una configuración incorrecta de la Indicación de Nombre del Servidor (SNI). El SNI es lo que permite a un servidor web alojar de forma segura varios certificados TLS para una dirección IP.
Cada sitio web en un servidor tiene su propio certificado. Sin embargo, si el servidor no está habilitado para el SNI, eso puede resultar en un fallo del SSL handshake, porque el servidor puede no saber qué certificado presentar.
Hay algunas maneras de comprobar y ver si un sitio requiere SNI. Una opción es usar la prueba del servidor SSL de Qualys, que discutimos en la sección anterior. Ingrese el nombre de dominio de tu sitio, y luego haz clic en el botón Enviar.
En la página de resultados, busca un mensaje que diga «Este sitio funciona sólo en navegadores con soporte SNI»:
Otro enfoque para detectar si un servidor está usando SNI es navegar por los nombres de los servidores en el mensaje «ClienteHello». Este es un proceso más técnico, pero puede ofrecer mucha información.
Implica comprobar el encabezado de hello extendido para un campo ‘nombre_del_servidor’, para ver si se presentan las certificaciones correctas.
Si estás familiarizado con el uso de herramientas como el kit de herramientas OpenSSL y Wireshark, puede que encuentres este método preferible. Puedes usar openssl s_client
con y sin la opción -servername
:
# without SNI
$ openssl s_client -connect host:port
# use SNI
$ openssl s_client -connect host:port -servername host
Si se obtienen dos certificados diferentes con el mismo nombre, significa que el SNI está soportado y configurado correctamente.
Sin embargo, si la salida en los certificados devueltos es diferente, o la llamada sin SNI no puede establecer una conexión SSL, indica que el SNI es necesario pero no está configurado correctamente. Para resolver este problema puede ser necesario cambiar a una dirección IP dedicada.
5. Asegúrate de que la Cipher Suites coinciden
Si aún no has podido identificar la causa del fallo SSL handshake, puede deberse a un desajuste de la cipher suite. En caso de que no estés familiarizado con el término, las ‘suites de cifrado’ se refieren a un conjunto de algoritmos, incluyendo los de intercambio de claves, encriptación masiva y código de autenticación de mensajes, que pueden ser usados para asegurar las conexiones de red SSL y TLS.
Si las suites de cifrado que utiliza un servidor no soportan o no coinciden con lo que utiliza Cloudflare, eso puede resultar en un error de «SSL Handshake Failed».
Cuando se trata de averiguar si existe un desajuste en el conjunto de cifrado, la prueba del servidor SSL de Qualys demuestra una vez más ser una herramienta útil.
Cuando introduzcas tu dominio y haces clic en Enviar, verás una página de análisis resumido. Puedes encontrar la información de cifrado en la sección Cipher Suites:
Puedes usar esta página para descubrir qué códigos y protocolos soporta el servidor. Querrás buscar cualquiera que muestre el estado «débil». Además, esta sección también detalla los algoritmos específicos para las suites de cifrado.
Para corregir este problema, puedes comparar los resultados con lo que tu navegador soporta utilizando la herramienta Qualys SSL/TLS Capabilities of Your Browser. Para obtener información más amplia y orientación sobre las suites de cifrado, también recomendamos consultar la guía de ComodoSSLStore.
Resumen
Uno de los tipos de problemas más desconcertantes y a la vez más comunes relacionados con SSL es el error «SSL Handshake Failed». Lidiar con este error puede ser estresante ya que tiene muchas causas potenciales, incluyendo problemas tanto del lado del cliente como del servidor.
Sin embargo, hay algunas soluciones fiables que puedes utilizar para identificar el problema y resolverlo. Aquí hay cinco maneras que puedes usar para arreglar el error de SSL Handshake Failed:
- Actualiza la fecha y la hora de tu sistema.
- Comprueba si tu certificado SSL es válido (y vuelve a emitirlo si es necesario).
- Configura tu navegador para que sea compatible con las últimas versiones TLS/SSL.
- Verifica que tu servidor esté configurado correctamente para soportar el SNI.
- Asegúrate de que las Cipher Suites coincidan.