Cómo arreglar Este sitio no puede proporcionar una conexión segura

¿Alguna vez has intentado visitar un sitio web y te has encontrado con el frustrante mensaje «Este sitio no puede proporcionar una conexión segura»?
Este error, aunque un poco críptico, desempeña un papel crucial para garantizar tu seguridad en línea.
En esencia, se produce cuando tu navegador detecta un problema con el certificado de seguridad del sitio web, el pasaporte digital que establece una conexión segura y cifrada entre tu dispositivo y el sitio web.
Es un poco como intentar entrar en un club donde el portero no está convencido de que tu DNI sea válido; en este caso, tu navegador es el portero, y el certificado de seguridad del sitio web es tu DNI.

Variaciones de la cuestión

El error «Este sitio no puede proporcionar una conexión segura» puede manifestarse de varias formas, dependiendo del navegador o dispositivo que estés utilizando.
Algunas variaciones comunes incluyen:

  • ERR_SSL_PROTOCOL_ERROR (Google Chrome)
  • SSL_ERROR_RX_RECORD_TOO_LONG (Mozilla Firefox)
  • No se puede visualizar la página (Internet Explorer)
  • No se puede conectar de forma segura a esta página (Microsoft Edge)
  • Safari no puede establecer una conexión segura con el servidor
  • Este sitio web puede no ser seguro (Navegadores móviles)
  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH (Chrome, Edge)
  • Error de certificado SSL
  • La conexión no es privada (Navegadores en MacOS)
  • Tu conexión no es segura (Mensaje general en varios navegadores)

Razones por las que se produce este error

Certificado SSL obsoleto

Un certificado SSL (Secure Sockets Layer) caducado es un problema crítico en el ámbito de la seguridad en Internet.
Se produce cuando el certificado digital que facilita las conexiones seguras entre un servidor web y el navegador de un cliente ha superado su fecha de caducidad.
Esta caducidad puede provocar multitud de problemas, como mensajes de advertencia en los navegadores, pérdida de confianza de los clientes y, potencialmente, el bloqueo completo del acceso al sitio web.
Comprender y gestionar la validez de los certificados SSL es esencial para mantener la integridad y seguridad de cualquier sitio web o servicio en línea.

Falta el certificado SSL en el entorno local

Cuando estás configurando un sitio web o una aplicación web en un entorno de desarrollo local -esencialmente, tu propio ordenador- puedes encontrarte con un problema en el que tu configuración carezca de un certificado SSL (Secure Sockets Layer).
Esto puede parecer un pequeño contratiempo, pero es como intentar asegurar tu casa sin una cerradura.
Un certificado SSL es crucial para establecer una conexión segura entre tu servidor (en este caso, tu máquina local) y el cliente (tu navegador web).
Sin él, cualquier transferencia de datos carece de cifrado, como enviar una carta sin sobre.

Hora incorrecta del sistema

Una configuración incorrecta de la hora y la fecha en un ordenador puede dar lugar a diversos problemas, sobre todo al establecer conexiones seguras en línea.
Este problema surge porque los certificados SSL dependen de marcas de tiempo precisas para validar la seguridad de una conexión.
Cuando la hora del sistema está desfasada, puede hacer que los certificados SSL parezcan inválidos o poco fiables.

Protocolo SSL o conjunto de cifrado débil

Los navegadores modernos rechazan las conexiones a sitios web que utilizan protocolos SSL o conjuntos de cifrado obsoletos e inseguros.
Las cachés SSL obsoletas de un navegador pueden causar diversos problemas de conexión.
Este problema se produce cuando el navegador retiene información de seguridad antigua, lo que provoca conflictos con los sitios web recién visitados o actualizados.
Es un reto importante, ya que puede impedir el acceso a los sitios e interferir en las pruebas de conexiones seguras durante el desarrollo.

Cortafuegos o antivirus bloqueando la conexión

A veces, estas herramientas de seguridad pueden ser demasiado entusiastas y bloquear tu conexión a un sitio web seguro.
Un software antivirus sobreprotector puede causar inadvertidamente problemas con las conexiones SSL.
Aunque su objetivo es proteger el sistema, estos programas a veces pueden ser demasiado agresivos, identificando erróneamente certificados SSL legítimos como amenazas.
Esta interferencia puede interrumpir las conexiones seguras, provocando errores y problemas de acceso en sitios web seguros.

Errores del navegador o versión obsoleta

Los fallos del navegador o el uso de una versión anticuada de un navegador web pueden provocar una serie de problemas que afectan a la experiencia del usuario, la seguridad y la compatibilidad con los estándares web modernos.
Estos problemas pueden manifestarse como pequeños fallos en la visualización del sitio web o como importantes vulnerabilidades de seguridad, que dificultan la capacidad del navegador para interactuar eficazmente con los sitios web, especialmente con los que utilizan las últimas tecnologías web.
Mantener un navegador actualizado es crucial para garantizar un rendimiento óptimo, seguridad y una experiencia en línea fluida.

Extensiones del navegador que han salido mal

Las extensiones de navegador maliciosas son un problema que a menudo se pasa por alto y que puede afectar significativamente a la navegación web y a la seguridad en línea.
Estas extensiones, que pueden funcionar sin el pleno conocimiento del usuario, pueden interferir con las operaciones normales del navegador, incluida la forma en que se gestionan los certificados SSL, lo que puede dar lugar a vulnerabilidades de seguridad y comprometer los datos del usuario.

Cómo solucionar el problema del certificado SSL en entornos locales

Activar SSL en el software del servidor local

Los entornos de servidor local como XAMPP, WAMP o MAMP suelen incluir opciones para activar SSL.
Activar SSL en estos entornos es crucial para probar aplicaciones web en un entorno seguro, basado en HTTPS.
Esta práctica refleja el protocolo de comunicación segura utilizado en los entornos de producción en vivo, garantizando así que tus pruebas locales sean lo más parecidas posible a los escenarios del mundo real.

Pasos

    1. Identifica tu software de servidor local (por ejemplo, XAMPP, WAMP, MAMP).
    2. Accede al panel de control o a los ajustes de configuración del software del servidor.
    3. Localiza la configuración o el módulo SSL/TLS.
      Puede estar en la configuración del servidor web, como Apache o Nginx.

Etiquetar SSL en el servidor local de XAMPP

  1. Sigue las instrucciones específicas proporcionadas por el software para activar SSL.
    Esto suele implicar descomentar ciertas líneas en los archivos de configuración (como `httpd-ssl.conf` en Apache) y especificar la ruta a tu certificado y clave SSL.
  2. Reinicia el software de tu servidor para aplicar los cambios.

Actualizar tu entorno de desarrollo

Mantener actualizado tu entorno de desarrollo es fundamental para la compatibilidad y la seguridad.
Las actualizaciones suelen incluir compatibilidad con los protocolos y cifrados SSL/TLS más recientes, lo que mejora la seguridad de tu entorno local de pruebas.
Los entornos anticuados pueden carecer de compatibilidad con los estándares SSL más recientes o tener vulnerabilidades conocidas que podrían comprometer la integridad de tu implementación SSL.

Pasos

  1. Comprueba si hay actualizaciones en tu entorno de desarrollo.
    Puede ser a través de un comprobador de actualizaciones integrado en tu IDE o software de servidor.
  2. Aplica todas las actualizaciones recomendadas, centrándote en los componentes que afectan a la funcionalidad del servidor web y al procesamiento SSL/TLS.
  3. Si utilizas herramientas o plugins adicionales para la gestión de SSL, asegúrate de que también estén actualizados.
  4. Tras la actualización, reinicia tu entorno de desarrollo y prueba para asegurarte de que la funcionalidad SSL funciona correctamente.

    Configurar tu servidor local para HTTPS

    La configuración adecuada de tu servidor local para gestionar peticiones HTTPS es crucial.
    Esto implica asegurarse de que el servidor escucha en el puerto correcto (normalmente 443 para HTTPS) y está configurado para utilizar el certificado SSL que has generado u obtenido.

    Pasos

    1. Edita los archivos de configuración de tu servidor local (por ejemplo, `httpd.conf` de Apache o `nginx.conf` de Nginx).
    2. Define un bloque de servidor o host virtual que escuche en el puerto 443.
    3. Incluye en la configuración la ruta a tu certificado SSL y a tu clave privada.
    4. Asegúrate de que los ajustes del cortafuegos o router permiten el tráfico en el puerto 443.
    5. Reinicia el servidor para aplicar los cambios.

    Archivo de configuración de Nginx para SSL

    Ajustar la configuración del cortafuegos y de la red

    A veces, los cortafuegos locales o las configuraciones de red pueden bloquear inadvertidamente las conexiones SSL/TLS.
    Asegurarse de que estos ajustes están configurados para permitir el tráfico HTTPS es esencial para que funcione la configuración SSL local.

    Pasos

    1. Comprueba la configuración del cortafuegos de tu sistema operativo.
      En Windows, puedes hacerlo en el Panel de Control; en macOS, en las Preferencias del Sistema.
    2. Asegúrate de que las reglas de entrada permiten el tráfico en el puerto 443 (HTTPS).
    3. Si utilizas un router o un software de seguridad de red adicional, comprueba también esos ajustes.
    4. Después de ajustar la configuración, prueba la conexión SSL para confirmar que todo funciona correctamente.

    Solución avanzada de problemas

    Configurar una autoridad de certificación (CA) local

    Establecer una Autoridad de Certificación (CA) local es un paso hacia la creación de un entorno más parecido al de producción para el desarrollo local.
    Una CA local te permite emitir tus propios certificados SSL, en los que pueden confiar todas tus aplicaciones locales.
    Esta configuración es particularmente útil cuando se trabaja con múltiples servicios locales o microservicios que necesitan comunicarse a través de SSL.

    Pasos

    Instala una herramienta como OpenSSL, con la que puedes crear tu propia CA.
    El primer paso para crear un certificado raíz es generar una clave privada.
    Esta clave se utiliza para firmar el certificado raíz y cualquier certificado posterior.

    Genera una clave y un certificado de CA raíz.
    El certificado de la CA raíz se utilizará para firmar otros certificados.

    1. Abre un terminal o símbolo del sistema.
    2. Ejecuta el comando:
    • openssl genrsa -out rootCA.key 2048.

    Comando de clave raíz en open ssl

    Esto crea una clave privada RSA de 2048 bits llamada rootCA.key.

    Con la clave privada, el siguiente paso es crear un certificado SSL raíz.
    Este certificado sirve como certificado de nivel superior en tu jerarquía de CA local.

    • Todavía en el terminal, ejecuta el comando
    • openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem.

    Root SSL en open ssl

    Este comando crea un nuevo certificado (rootCA.pem) autofirmado con rootCA.key.

    Se te pedirá que introduzcas datos como país, estado, organización, etc.
    Rellénalos como desees; aparecerán en el certificado.

    El siguiente paso del proceso es confiar en el certificado raíz.
    Este paso hace que todos los certificados firmados por tu CA local sean de confianza automáticamente, evitando las advertencias de los navegadores.
    Para que tus aplicaciones locales y navegadores confíen en los certificados firmados por esta CA raíz, debes añadir el rootCA.pem a los almacenes de certificados de confianza de tu sistema y navegadores.

    • En macOS, abre Acceso a Llaveros, ve a Certificados e importa rootCA.pem.
      Configura el certificado como «Confiar siempre».
    • En Windows, abre el Administrador de Certificados, importa rootCA.pem en «Autoridades de Certificación Raíz de Confianza».
    • Para navegadores como Firefox que utilizan su propio almacén de certificados, importa rootCA.pem en la configuración de seguridad del navegador.

    Una vez realizados todos los pasos anteriores, estarás configurado y listo para crear un certificado SSL para tu dominio.
    Sigue las instrucciones que aparecen a continuación para cada segmento del proceso.

    Crear archivos de configuración para OpenSSL

    Los archivos de configuración de OpenSSL especifican parámetros para la generación de certificados.
    Incluyen detalles sobre la autoridad de certificación, requisitos de política y extensiones para los certificados.

    1. Crea un nuevo archivo llamado openssl.cnf en un directorio de tu elección.
    2. Abre el archivo en un editor de texto y establece las configuraciones básicas.
      Esto incluye los bits por defecto para las claves, el compendio de mensajes por defecto y las opciones de política.
      Puedes encontrar un ejemplo básico en la documentación de OpenSSL o en los recursos en línea.
    3. Especifica las secciones [ v3_ca ] y [ v3_req ] para incluir parámetros para la generación de certificados CA y SSL.
    4. Guarda el archivo.

    Producir clave de certificado localhost

    La clave del certificado es una clave privada utilizada en la creación del certificado SSL.
    Esta clave debe mantenerse segura y privada.

    1. Abre la línea de comandos o el terminal.
    2. Navega hasta el directorio donde quieras guardar la clave.
    3. Ejecuta el comando:
    • openssl genrsa -out localhost.key 2048.

    Esto genera una clave privada RSA de 2048 bits llamada localhost.key.

    Generar un certificado SSL para el dominio local

    Se necesita un certificado SSL para configurar una conexión HTTPS segura.
    Para localhost, crearás un certificado autofirmado.

    1. Con la clave privada (localhost.key) generada, crea una solicitud de firma de certificado (CSR) ejecutando: openssl req -new -key localhost.key -out localhost.csr.
    2. Se te pedirá que introduzcas los detalles; asegúrate de que el nombre común (CN) coincide con tu dominio local (por ejemplo, localhost).
    3. Para generar un certificado SSL a partir de la CSR, ejecuta:
    • openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt.

    Activación del certificado SSL

    Localiza el archivo de configuración de tu servidor web (por ejemplo, httpd.conf de Apache, nginx.conf de Nginx).

    1. Edita el archivo para incluir la ruta a tu ‘localhost.crt’ y ‘localhost.key’.
    2. Para Apache, utiliza las directivas SSLCertificateFile y SSLCertificateKeyFile; para Nginx, utiliza las directivas ssl_certificate y ssl_certificate_key.
    3. Asegúrate de que el servidor está configurado para escuchar en HTTPS, normalmente en el puerto 443.
    4. Reinicia el servidor web para aplicar los cambios.

    Utilizar proxies de desarrollo

    Los proxies de desarrollo como NGINX o Apache pueden configurarse como proxies inversos para gestionar las conexiones SSL.
    Esta configuración puede simular un entorno de producción con mayor precisión, ya que separa la terminación SSL (gestión de la conexión SSL) de la lógica de la aplicación.
    Es especialmente útil en arquitecturas de microservicios o cuando quieres imitar escenarios de equilibrio de carga y terminación SSL.

    Pasos

    1. Elige una herramienta de proxy inverso, como NGINX o Apache.
    2. Instala y configura el proxy inverso en tu máquina local.
    3. Configura el proxy inverso para que escuche en el puerto HTTPS (443) y reenvíe las peticiones a tu aplicación que se ejecuta en un puerto no HTTPS (como 8080 o 3000).
    4. Configura SSL en el proxy inverso especificando la ruta a tu certificado SSL y clave privada.
      Estos pueden ser autofirmados o firmados por tu CA local.
    5. Opcionalmente, configura parámetros SSL avanzados en el proxy, como cifrados y protocolos SSL, para imitar la configuración SSL de tu entorno de producción.
    6. Actualiza la configuración de tu aplicación, si es necesario, para que confíe en el proxy inverso y lo reconozca como origen de las peticiones protegidas por SSL.

    Conclusión

    Para resolver problemas de certificados SSL en entornos locales, empieza con correcciones generales como habilitar SSL en el software de tu servidor local y asegurarte de que tu entorno de desarrollo está actualizado.
    Para las correcciones técnicas, considera crear e instalar un certificado SSL autofirmado, configurar tu servidor local para HTTPS y ajustar la configuración del cortafuegos y de la red.
    Para configuraciones avanzadas, utilizar una CA local o proxies de desarrollo como NGINX o Apache puede proporcionar un entorno de pruebas más realista y robusto.
    Estos pasos te ayudarán a emular localmente un entorno seguro similar al de producción.

    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 *