Error "Tu conexión no es privada" / NET::ERR_CERT y sus soluciones
Cuando ves en el navegador el error "Tu conexión no es privada" o NET::ERR_CERT_..., el sitio no se abre y los visitantes se asustan. En este artículo abordamos las causas más frecuentes de este error y la solución definitiva de cada una. Primero, fíjate en el código del error; el código apunta directamente al problema.
Lee el código del error
En los navegadores basados en Chrome, debajo del mensaje de error hay un código. Los más comunes son:
NET::ERR_CERT_DATE_INVALID→ el certificado ha caducado (o la hora del dispositivo es incorrecta).NET::ERR_CERT_AUTHORITY_INVALID→ falta la cadena intermedia o la autoridad no es de confianza.NET::ERR_CERT_COMMON_NAME_INVALID→ el certificado no coincide con el dominio (p. ej. no se cubrewww).
Causa 1 — Certificado caducado
Es la causa más frecuente. Los certificados gratuitos son válidos durante 90 días; olvidar renovarlos provoca este error. Comprueba la fecha de validez desde la terminal:
echo | openssl s_client -connect tudominio.com:443 -servername tudominio.com 2>/dev/null | openssl x509 -noout -dates
Si la fecha notAfter ya ha pasado, el certificado ha caducado. Solución: genera un certificado nuevo con nuestro asistente de SSL gratuito, descarga el ZIP y sobrescribe los archivos antiguos de tu servidor; después, recarga el servicio.
Si el error aparece solo en tu dispositivo, lo más probable es que el problema sea una hora del sistema incorrecta. Configura la fecha y hora del dispositivo de forma automática (NTP).
Causa 2 — Cadena intermedia faltante (intermediate)
Subir al servidor solo certificate.crt y olvidar añadir el CA Bundle / la cadena intermedia es el motivo clásico de este error. Lo curioso es que el sitio se abre en algunos navegadores y en otros da ERR_CERT_AUTHORITY_INVALID; esto se debe a que algunos sistemas pueden completar el certificado intermedio desde la caché, mientras que los navegadores móviles no.
Solución — según el servidor:
- Nginx: para
ssl_certificateno usescertificate.crtpor sí solo, sinofullchain.pem. - Apache: define
ca_bundle.crten la directivaSSLCertificateChainFile. - cPanel: en el administrador SSL/TLS, rellena la casilla CA Bundle con el contenido de
ca_bundle.crt.
Para verificar que la cadena se sirve completa:
echo | openssl s_client -connect tudominio.com:443 -servername tudominio.com -showcerts
En la salida deberías ver varios bloques BEGIN CERTIFICATE, desde el certificado hasta el certificado intermedio. Si solo hay un bloque, la cadena está incompleta.
Causa 3 — Discrepancia de dominio
ERR_CERT_COMMON_NAME_INVALID indica que el certificado no cubre el nombre solicitado. El escenario más frecuente: el certificado se ha obtenido solo para tudominio.com, pero el visitante entra en www.tudominio.com. Solución: al volver a obtener el certificado, marca en el asistente la opción "incluir también el subdominio www"; así se cubren ambos nombres.
Causa 4 — Contenido mixto (mixed content)
Aunque la página en sí sea HTTPS, si algunos de sus recursos (imágenes, scripts, estilos) se siguen cargando con http://, el navegador muestra una advertencia en lugar del candado y puede bloquear los scripts. La solución detallada de este tema la encontrarás en nuestra guía sobre contenido mixto; la solución corta es poner todas las direcciones de los recursos como https://.
Lista de comprobación rápida
- Lee el código del error (DATE / AUTHORITY / COMMON_NAME).
- Comprueba la validez del certificado con
openssl ... -dates. - Verifica la cadena con
-showcerts; si falta, añade el CA Bundle. - Mira si se cubren www u otros dominios.
- Prueba la hora del dispositivo y la caché (pestaña privada).
Resumen
La mayoría de los errores NET::ERR_CERT se deben a tres causas: certificado caducado, cadena intermedia faltante y discrepancia de dominio. Lee el código del error y aplica la solución correspondiente. Para renovar el certificado o incluir www puedes usar nuestro asistente de SSL gratuito y, para la cadena faltante, subir el archivo fullchain.pem o ca_bundle.crt del ZIP.