err_ssl_version_or_cipher_mismatch o cómo solucionar problemas de negociación SSL
En ocasiones, cuando intentas acceder a una página web aparece un error indicando que no se ha podido negociar un protocolo SSL o conjunto de cifrados. En Google Chrome, este error va acompañado del texto "err_ssl_version_or_cipher_mismatch"; en otros navegadores es distinto, aunque muy similar.
Cada vez que te conectas a un servidor web mediante el protocolo https, el navegador realiza ciertas negociaciones para asegurar que la transacción de los datos con el servidor es segura.
Si el cliente (Google Chrome) y el servidor no son capaces de llegar a un acuerdo con la versión del protocolo SSL que se va a utilizar o con la suite de cifrado, entonces aparece el mensaje de aviso err_ssl_version_or_cipher_mismatch.
- Cómo saber la causa del mensaje err_ssl_version_or_cipher_mismatch
- Analizar las versiones TLS soportadas por el servidor
- Cambiar los protocolos SSL/TLS soportados en el navegador web
- Borrar la caché del navegador web
- Cambiar los protocolos soportados por el servidor
- Software que interfiere en las conexiones seguras
- Conclusiones sobre err_ssl_version_or_cipher_mismatch
Motivos por los que aparece el mensaje err_ssl_version_or_cipher_mismatch
La causa que hace aparecer el error err_ssl_version_or_cipher_mismatch es que la aplicación cliente y el servidor usan versiones TLS distintas o bien no se ponen de acuerdo en la suite de cifrado que usarán para comunicarse.
En la mayoría de los casos, el motivo por el cual aparece este mensaje es que las versiones de los protocolos SSL/TLS que usa tu navegador están obsoletas. También puede aparecer si las versiones del servidor están obsoletas. En todos los productos administrados que ofrecemos en Raiola Networks tenemos todos nuestro software actualizado para que esto no suceda.
El mensaje err_ssl_version_or_cipher_mismatch no solamente aparece en navegadores como Chrome o Firefox, también puede darse en otras aplicaciones, como clientes de correo (Outlook, Thunderbird), o en cualquier programa que se conecte mediante conexiones seguras.
Sin embargo, como ya convenimos anteriormente, el texto que ofrece el error es distinto.
A continuación te muestro cómo, al intentar hacer una conexión de tipo SSH, se produce un error porque el servidor y el cliente no se ponen de acuerdo en la suite de cifrado que van a usar, ya que no comparten ninguna, por lo que no se consigue llevar a cabo una conexión segura:
fran ➜ ~ $ ssh -v 51.210.87.242
OpenSSH_9.2p1, OpenSSL 3.0.8 7 Feb 2023
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to 51.210.87.242 [51.210.87.242] port 22.
debug1: Connection established.
debug1: identity file /home/trabajo/.ssh/id_rsa type -1
debug1: identity file /home/trabajo/.ssh/id_rsa-cert type -1
debug1: identity file /home/trabajo/.ssh/id_ecdsa type -1
debug1: identity file /home/trabajo/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/trabajo/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/trabajo/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/trabajo/.ssh/id_ed25519 type -1
debug1: identity file /home/trabajo/.ssh/id_ed25519-cert type -1
debug1: identity file /home/trabajo/.ssh/id_ed25519_sk type -1
debug1: identity file /home/trabajo/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/trabajo/.ssh/id_xmss type -1
debug1: identity file /home/trabajo/.ssh/id_xmss-cert type -1
debug1: identity file /home/trabajo/.ssh/id_dsa type -1
debug1: identity file /home/trabajo/.ssh/id_dsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_9.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: compat_banner: match: OpenSSH_7.4 pat OpenSSH_7.4* compat 0x04000006
debug1: Authenticating to 51.210.87.242:22 as 'trabajo'
debug1: load_hostkeys: fopen /home/trabajo/.ssh/known_hosts: No such file or directory
debug1: load_hostkeys: fopen /home/trabajo/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
Unable to negotiate with 51.210.87.242 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Se ve en la última línea de este intento de conexión que el mensaje es "no matching cipher found", es decir, que no hay un acuerdo sobre el qué suite de seguridad usar. Como ves, el problema es el mismo (esto es, no hay una negociación SSL exitosa), pero el mensaje es ligeramente distinto.
Cada aplicación muestra el mensaje con un código distinto. Por ejemplo, en Firefox el mensaje es "SSL_ERROR_PROTOCOL_VERSION_ALERT":
En Google Chrome, el mensaje de error es exactamente "ERR_SSL_VERSION_OR_CIPHER_MISMATCH", como se mostraba en la captura que te dejaba al incio del post.
Cómo saber la causa del mensaje err_ssl_version_or_cipher_mismatch
Existen varias formas de deshacerte del mensaje "ERR_SSL_VERSION_OR_CIPHER_MISMATCH" al intentar acceder a los sitios web. Las soluciones puedes llevarlas a cabo desde tu navegador (por ejemplo, Chrome) o bien desde la configuración del servidor, si bien para estas últimas necesitarás conocimientos algo más avanzados.
Analizar las versiones TLS soportadas por el servidor
Lo primero que necesitarás saber, para poder tener claro el camino que debes tomar, son las versiones SSL/TLS que está ofreciendo el servidor.
Existen herramientas online que te sirven para estos propósitos, como esta que ofrece SSL Labs. Con ella podrás analizar qué protocolos y suites de cifrado permite un servidor a través del protocolo https. Si quieres analizar otros protocolos, por ejemplo, IMAP o SMTP porque tienes problemas al conectar tu aplicación de correo, puedes poner el nombre del dominio con el puerto, de esta forma: raiola.cuentamemilongas.com:465, pero para ello deberás crear una cuenta previamente.
En la siguiente imagen puedes ver el análisis que ha realizado SSL Labs de un servidor de hosting compartido de Raiola Networks. Como ves, soporta TLS 1.3 y TLS 1.2, así como TLS 1.1 y TLS 1.0 los cuales, si bien son algo antiguos, de no soportarlos algunos navegadores o sistemas operativos no podrían acceder a las páginas web alojadas en ese servidor. Además, se ven también las suites de cifrado que soporta cada protocolo.
Soluciones al error err_ssl_version_or_cipher_mismatch
Una vez que tienes claras cuáles son las causas del problema y cómo analizarlas, toca ponerse manos a la obra y adoptar soluciones. A continuación, tienes las medidas más sencillas que puedes llevar a cabo para acceder con normalidad a tu sitio web.
Cambiar los protocolos SSL/TLS soportados en el navegador web
Si estás viendo el mensaje err_ssl_version_or_cipher_mismatch en Chrome al intentar acceder a tu sitio web, haz lo siguiente:
- Abre una nueva pestaña y accede a chrome://flags
- En el buscador, en la parte superior, escribe SSL/TLS.
- Busca la opción Minimum SSL/TLS y configura una soportada por tu servidor.
Cabe destacar que esta opción podría exponer tu navegador web por lo que, si la usas, debes estar muy seguro de lo que estás haciendo.
En Firefox, la gestión es muy similar:
- Abre una nueva pestaña y accede a about://config
- En el buscador, escribe security.tls.version
- Activa security.tls.version.enable-deprecated
Borrar la caché del navegador web
En ocasiones, la forma más sencilla de solucionar un problema con el certificado SSL de tu sitio web es, simplemente, borrando la caché del navegador.
Un navegador como Google Chrome con datos obsoletos acerca de un sitio web puede producirte problemas al acceder mediante una conexión segura https, por lo que simplemente con esta acción solucionarás el problema del mensaje err_ssl_version_or_cipher_mismatch.
Cambiar los protocolos soportados por el servidor
Si tienes un servidor VPS o dedicado en Raiola Networks, entonces puedes controlar cómo el servidor cifra las conexiones. En una situación así tienes varias opciones:
- Si tienes contratado el servicio de administración, saca una captura de pantalla del error y envíanosla a través de un ticket. Nosotros nos encargaremos de dar solución al problema.
- Si cuentas con un panel de control, como cPanel o Plesk, busca en su documentación cómo habilitar las versiones y tipos de cifrado que necesitas.
- Si has montado el servidor a mano, mediante una conexión SSH edita el archivo de configuración del servidor web, habilitando las versiones de SSL/TLS que necesitas y sus suites de cifrado.
Software que interfiere en las conexiones seguras
Es habitual usar programas para proteger la seguridad de tus equipos, como antimalware.
Este tipo de suites de seguridad pueden influir en muchas capas al conectarnos a un servidor web, por lo que podría interferir en la comunicación que intentas realizar.
Prueba a desactivar, al menos temporalmente, el antivirus de tu ordenador y acceder de nuevo a la página web. Quizá con este sencillo paso puedas lograrlo. Asegúrate que el sitio está siendo bloqueado por ofrecer versiones de cifrados obsoletos y no es un riesgo para tu seguridad antes de realizar una acción como esta.
Conclusiones sobre err_ssl_version_or_cipher_mismatch
Si ves el mensaje de error err_ssl_version_or_cipher_mismatch, debes saber que no estás ante un problema de seguridad. Simplemente se trata de un problema de comunicación entre el cliente y el servidor. Haciendo una analogía, sucede lo mismo si no consigues hacerte comprender por una persona que no habla el mismo idioma que tú.
Aplica alguna de las soluciones que te indicaba anteriormente y estoy seguro de que podrás solucionar el problema.
Deja una respuesta
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *