«Tu conexión no es privada» es el error SSL más común. Significa que tu navegador detectó un problema con el certificado SSL del sitio web y se negó a establecer una conexión segura. El error aparece como NET::ERR_CERT_* en Chrome, «Advertencia: riesgo potencial de seguridad» en Firefox, o «Esta conexión no es privada» en Safari.
Esta guía cubre soluciones para ambos lados: si eres un visitante que ve el error, y si eres un propietario de sitio web cuyos visitantes lo ven.
Si eres un visitante (soluciones rápidas)
Estos pasos solucionan causas del lado del cliente: problemas en tu dispositivo, no en el sitio web.
1. Recarga la página
El error a veces es transitorio, un fallo de red durante la negociación TLS. Presiona F5 o Ctrl+R.
2. Verifica la fecha y hora de tu dispositivo
Los certificados SSL tienen fechas de validez. Si el reloj de tu computadora está incorrecto, el navegador cree que el certificado está expirado o aún no es válido. Solución:
- Windows: Configuración → Hora e idioma → Establecer la hora automáticamente
- macOS: Ajustes del Sistema → General → Fecha y hora → Ajustar automáticamente
- Linux:
sudo timedatectl set-ntp true
3. Prueba en modo incógnito/privado
Si funciona en incógnito pero no en modo normal, una extensión del navegador está interfiriendo, probablemente un antivirus, VPN o bloqueador de anuncios que inspecciona el tráfico HTTPS. Desactiva las extensiones una por una para encontrar la culpable.
4. Limpia la caché del navegador y el estado SSL
Tu navegador puede haber almacenado en caché un certificado antiguo:
- Chrome: Configuración → Privacidad → Borrar datos de navegación → Imágenes y archivos en caché
- Windows: Propiedades de Internet → Contenido → Borrar estado SSL
- macOS: Acceso a Llaveros → buscar el dominio → eliminar entradas en caché
5. Verifica tu red
Los proxies corporativos, los portales cautivos de Wi-Fi en hoteles y algunas VPN inyectan sus propios certificados. Intenta:
- Desconectar la VPN y probar de nuevo
- Cambiar a una red diferente (por ejemplo, hotspot del móvil)
- Conectarte al portal cautivo si estás en Wi-Fi de hotel/aeropuerto
6. Actualiza tu navegador
Los navegadores antiguos pueden no confiar en Autoridades Certificadoras más recientes o no soportar TLS moderno. Actualiza a la versión más reciente.
¿Deberías hacer clic en «Continuar de todos modos»? Solo si entiendes el riesgo y confías en el sitio (por ejemplo, tu propio servidor de desarrollo con un certificado autofirmado). Nunca ignores la advertencia en sitios de banca, correo o compras.
Si eres el propietario del sitio web (soluciones del servidor)
Tus visitantes ven este error porque algo está mal con tu configuración SSL. A continuación te explicamos cómo diagnosticar y solucionar cada causa.
Causa 1: Certificado expirado
La causa más común. Los certificados de Let’s Encrypt expiran cada 90 días.
Diagnosticar:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
Solución: Renueva tu certificado. Con GetHTTPS, toma 5 minutos. Luego reemplaza los archivos y recarga tu servidor.
Causa 2: El certificado no coincide con el dominio
El certificado fue emitido para example.com pero estás accediendo a www.example.com (o viceversa).
Diagnosticar:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
Solución: Obtén un nuevo certificado que incluya tanto el dominio base como www. En GetHTTPS, añade tanto example.com como www.example.com.
Causa 3: Cadena de certificados incompleta
Tu servidor no está enviando el certificado intermedio. El navegador no puede construir la ruta de confianza desde tu certificado hasta la CA raíz.
Diagnosticar:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Verify return code"
# "21 (unable to verify the first certificate)" = cadena incompleta
Solución:
- Nginx: Usa
fullchain.pem(nocert.pem) enssl_certificate - Apache: Añade
SSLCertificateChainFile chain.pem
Cadena de confianza explicada →
Causa 4: Certificado autofirmado
Los certificados autofirmados no son confiables para los navegadores, ya que no hay una CA que los respalde.
Solución: Reemplaza con un certificado real de Let’s Encrypt (gratuito) o una CA comercial.
Causa 5: Se sirve el certificado incorrecto
Si alojas múltiples sitios en un servidor, puede servirse el certificado equivocado (mala configuración de SNI).
Diagnosticar:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject
# Verifica que el CN coincida con tu dominio
Solución: Asegúrate de que cada bloque server (Nginx) o <VirtualHost> (Apache) tenga el ssl_certificate correcto para ese dominio.
Causa 6: Versión de TLS demasiado antigua
Tu servidor solo soporta versiones de TLS obsoletas (1.0/1.1) que los navegadores han dejado de usar.
Solución:
# Nginx
ssl_protocols TLSv1.2 TLSv1.3;
# Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Causa 7: Modo SSL «Flexible» de Cloudflare
El modo «Flexible» de Cloudflare puede causar este error cuando no hay un certificado válido en el servidor de origen.
Solución: Instala un certificado en tu origen (GetHTTPS o Cloudflare Origin CA) y cambia al modo «Full (Strict)».
Causa 8: HSTS tiene un estado incorrecto en caché
Si previamente serviste cabeceras HSTS pero luego se rompió HTTPS, los navegadores se niegan a conectar por HTTP como alternativa.
Solución: Restaura HTTPS con un certificado válido. Si estás probando, usa un max-age corto de HSTS (por ejemplo, 300 segundos) hasta que tengas confianza.
Referencia de códigos de error
| Código de error de Chrome | Significado | Solución común |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | Certificado expirado o aún no válido | Renovar certificado o corregir el reloj del sistema |
NET::ERR_CERT_COMMON_NAME_INVALID | El dominio no coincide con el certificado | Obtener certificado para el dominio correcto |
NET::ERR_CERT_AUTHORITY_INVALID | Autofirmado o CA no confiable | Usar una CA confiable como Let’s Encrypt |
NET::ERR_CERT_REVOKED | El certificado ha sido revocado | Obtener un nuevo certificado |
NET::ERR_SSL_PROTOCOL_ERROR | La negociación TLS falló | Verificar la configuración TLS del servidor |
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH | Sin versión/cifrado TLS en común | Habilitar TLS 1.2+ en el servidor |
SSL_ERROR_HANDSHAKE_FAILURE_ALERT | (Firefox) Negociación rechazada | Verificar certificado y configuración del servidor |
Preguntas frecuentes
¿Es seguro hacer clic en «Continuar» / «Aceptar el riesgo»?
Solo en sitios en los que confías y entiendes el riesgo, como tu propio servidor de desarrollo con un certificado autofirmado. Nunca ignores la advertencia en sitios de banca, comercio electrónico, correo o redes sociales. La advertencia existe porque alguien podría estar interceptando tu tráfico.
Veo este error en mi propio sitio. ¿Cómo lo soluciono más rápido?
Ve a GetHTTPS, obtén un nuevo certificado gratuito, instálalo y recarga tu servidor web. Toma 5 minutos. Si el error persiste, verifica el código de error, ya que te indica exactamente qué está mal (expirado, dominio incorrecto, cadena faltante, etc.).
El error aparece en algunos dispositivos pero no en otros
Generalmente es un problema de cadena de confianza: tu servidor no está enviando el certificado intermedio. Algunos navegadores/sistemas operativos tienen el intermedio en caché de visitas anteriores, pero los dispositivos nuevos no lo han visto. Solución: usa fullchain.pem en tu servidor.
Mi certificado es válido pero sigo viendo el error
Verifica: discrepancia de dominio (www vs sin www), cadena incompleta, HSTS con un fallo previo en caché, o un proxy/CDN sirviendo un certificado diferente. Usa openssl s_client para ver exactamente qué certificado está presentando el servidor.