Los errores de certificado SSL impiden que los visitantes lleguen a tu sitio de forma segura. Esta guía cubre cada código de error común, qué significa y cómo solucionarlo, ya seas un visitante o un propietario de sitio web.
Para el error más común específicamente, consulta nuestra guía dedicada: Solucionar «Tu conexión no es privada» →
Tabla de referencia de errores
| Código de error (Chrome) | Equivalente en Firefox | Significado | Solución |
|---|---|---|---|
NET::ERR_CERT_DATE_INVALID | SEC_ERROR_EXPIRED_CERTIFICATE | Certificado expirado | Renovar certificado |
NET::ERR_CERT_COMMON_NAME_INVALID | SSL_ERROR_BAD_CERT_DOMAIN | El dominio no coincide con el certificado | Obtener certificado para el dominio correcto |
NET::ERR_CERT_AUTHORITY_INVALID | SEC_ERROR_UNKNOWN_ISSUER | Autofirmado o CA no confiable | Usar Let’s Encrypt |
NET::ERR_CERT_REVOKED | SEC_ERROR_REVOKED_CERTIFICATE | El certificado ha sido revocado | Obtener un nuevo certificado |
NET::ERR_SSL_PROTOCOL_ERROR | SSL_ERROR_RX_RECORD_TOO_LONG | La negociación TLS falló | Verificar configuración del servidor |
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH | SSL_ERROR_NO_CYPHER_OVERLAP | Sin versión/cifrado TLS en común | Habilitar TLS 1.2+ |
ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | — | El pin HPKP no coincide | Actualizar o eliminar pins HPKP |
ERR_CERTIFICATE_TRANSPARENCY_REQUIRED | — | Falta la entrada en el log CT | Re-emitir desde una CA compatible con CT |
Soluciones detalladas de errores
ERR_CERT_DATE_INVALID — Certificado expirado
Causa: La fecha Not After del certificado ha pasado. Con los certificados de 90 días de Let’s Encrypt, esto ocurre si olvidas renovar.
Solución para visitantes: Verifica la fecha y hora de tu dispositivo; si tu reloj está mal, los certificados válidos parecen expirados.
Solución para propietarios:
# Check the actual expiry
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
Renueva inmediatamente, reemplaza los archivos, recarga el servidor. Configura monitoreo para prevenir esto en el futuro.
ERR_CERT_COMMON_NAME_INVALID — Dominio no coincide
Causa: El certificado fue emitido para example.com pero estás visitando www.example.com (o viceversa), o el certificado cubre un dominio completamente diferente.
Solución para propietarios:
# Check which domains the certificate covers
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
Obtén un nuevo certificado que incluya todos los dominios necesarios. En GetHTTPS, añade tanto example.com como www.example.com.
ERR_CERT_AUTHORITY_INVALID — CA no confiable
Causa: El certificado es autofirmado, emitido por una CA desconocida, o la cadena de confianza intermedia está incompleta.
Solución para propietarios:
- Si es autofirmado → reemplazar con un certificado de Let’s Encrypt
- Si la cadena está incompleta → usar
fullchain.pem(Nginx) o añadirSSLCertificateChainFile(Apache) - Si la CA es desconocida → cambiar a una CA confiable
ERR_SSL_PROTOCOL_ERROR — Fallo en la negociación
Causa: La configuración TLS del servidor está rota: ruta de certificado incorrecta, archivos corruptos o configuración mal hecha.
Solución para propietarios:
# Test the TLS connection
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
# Check if the certificate and key match
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
# Hashes must match
Causas comunes: ruta de archivo incorrecta en la configuración del servidor, certificado y clave de sesiones diferentes, permisos de archivo demasiado restrictivos.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH — Sin TLS compatible
Causa: El servidor solo soporta versiones TLS antiguas (1.0/1.1) que el navegador ha dejado de usar, o utiliza suites de cifrado que el navegador no soporta.
Solución para propietarios:
# Nginx — enable modern TLS
ssl_protocols TLSv1.2 TLSv1.3;
# Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Advertencias de contenido mixto
Causa: Tu página HTTPS carga imágenes, scripts o CSS a través de HTTP.
Esto no es un error de certificado: el certificado está bien, pero la página referencia recursos inseguros. Guía completa de corrección de contenido mixto →
Flujo de diagnóstico
Cuando veas cualquier error SSL, sigue esta secuencia:
1. Verifica el código de error → identifica la categoría
↓
2. Verifica los detalles del certificado
openssl s_client -connect domain:443 -servername domain
↓
3. ¿Está expirado? → Renovar
¿Dominio no coincide? → Re-emitir para el dominio correcto
¿Cadena incompleta? → Usar fullchain.pem
¿Autofirmado? → Cambiar a Let's Encrypt
¿Error de configuración? → Verificar rutas de archivos y permisos
↓
4. Después de corregir → recargar servidor, limpiar caché del navegador, verificar
Herramientas de diagnóstico en línea
| Herramienta | URL | Qué verifica |
|---|---|---|
| SSL Labs | ssllabs.com/ssltest | Auditoría SSL completa (grado A-F) |
| SSL Checker | sslshopper.com/ssl-checker | Cadena, vencimiento, coincidencia de dominio |
| Certificate Search | crt.sh | Logs de Certificate Transparency |
| Why No Padlock | whynopadlock.com | Detección de contenido mixto |
Preguntas frecuentes
Corregí el error pero el navegador sigue mostrándolo
Limpia la caché de tu navegador (Ctrl+Shift+Delete) o prueba en una ventana de incógnito. Los navegadores almacenan en caché los estados SSL, y HSTS puede forzar una decisión en caché. En Windows, también limpia el estado SSL: Propiedades de Internet → Contenido → Borrar estado SSL.
El error aparece en algunos navegadores pero no en otros
Diferentes navegadores tienen diferentes almacenes de confianza y caché. Lo más común: una cadena de certificados incompleta que algunos navegadores pueden completar desde la caché mientras otros no pueden. Solución: servir la cadena completa desde tu servidor.
¿Cómo prevengo errores SSL?
- Monitorear el vencimiento del certificado — configurar alertas para el día 60 de 90
- Usar
fullchain.pemen lugar decert.pem— previene errores de cadena - Incluir todas las variantes de dominio (www + sin www) en tu certificado
- Configurar renovación automática con Certbot para servidores de producción
- Probar después de cada cambio con SSL Labs