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 cubre www).

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).

Imagen: <pantalla de advertencia "Tu conexión no es privada" de Chrome>
El error NET::ERR_CERT suele deberse a la fecha o a la cadena.

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_certificate no uses certificate.crt por sí solo, sino fullchain.pem.
  • Apache: define ca_bundle.crt en la directiva SSLCertificateChainFile.
  • 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

  1. Lee el código del error (DATE / AUTHORITY / COMMON_NAME).
  2. Comprueba la validez del certificado con openssl ... -dates.
  3. Verifica la cadena con -showcerts; si falta, añade el CA Bundle.
  4. Mira si se cubren www u otros dominios.
  5. 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.