Respuesta corta: Si tu web muestra
NET::ERR_CERT_DATE_INVALIDen todos los equipos, tienes un certificado SSL caducado. Renuévalo desde donde se emitió (certbot, el panel del hosting o tu CDN), recarga el servidor web y comprueba conopensslque ya se sirve el nuevo. Luego averigua por qué falló la renovación automática, porque si no lo arreglas volverá a pasar en unas semanas.
Por qué caduca un certificado que «se renovaba solo»
Todos los certificados SSL tienen fecha de caducidad, y cada vez más corta. Desde marzo de 2026 ningún certificado público puede durar más de 200 días, y el calendario acordado por navegadores y autoridades lo baja a 100 días en 2027 y a 47 días en 2029. Los de Let’s Encrypt ya duraban 90 días. Con esos plazos, la renovación tiene que ser automática, y cuando caduca un certificado casi nunca es porque nadie lo renovara a mano: es porque la renovación automática ha fallado sin avisar.
Las causas que más vemos:
- El dominio ya no apunta al servidor. Has cambiado el DNS, has puesto un CDN delante o has migrado la web, y el servidor antiguo intenta renovar un dominio que ya no controla.
- La validación no llega. Let’s Encrypt valida pidiendo un fichero por el puerto 80 (
/.well-known/acme-challenge/). Un cortafuegos, una redirección mal hecha, un plugin de seguridad o una regla del.htaccesslo bloquean. - El certificado se renovó, pero el servidor sigue sirviendo el antiguo porque nadie ha recargado Nginx, Apache o el balanceador.
- Se renovó en un sitio, pero el visitante ve otro. El certificado del servidor está al día, pero el que entrega el CDN, el balanceador o el proxy es otro.
- El certificado era de pago y anual, y la tarjeta caducó o el aviso fue al correo de alguien que ya no está.
- Nadie se enteró del aviso. Let’s Encrypt dejó de enviar correos de aviso de caducidad en 2025, así que si dependías de ellos, ya no llegan.
Cómo saber si te pasa
Síntomas
- Chrome y Edge muestran
NET::ERR_CERT_DATE_INVALID; Firefox,SEC_ERROR_EXPIRED_CERTIFICATE. - Con un certificado SSL caducado, el error sale en todos los equipos y redes, no solo en uno. Si solo pasa en uno, mira primero la fecha y hora de ese equipo.
- Las integraciones dejan de funcionar: pasarelas de pago, webhooks, apps que consumen tu API.
Comprueba las fechas
openssl s_client -connect tudominio.com:443 -servername tudominio.com </dev/null 2>/dev/null |
openssl x509 -noout -dates -issuer
notBefore=Jul 20 09:12:44 2026 GMT
notAfter=Oct 18 09:12:43 2026 GMT
issuer=C=US, O=Let's Encrypt, CN=R10
Si notAfter ya ha pasado, está caducado. El issuer te dice quién lo emitió y, por tanto, dónde tienes que renovarlo. Repite con www.tudominio.com: a veces solo ha caducado una de las dos variantes.
Si usas Cloudflare con el proxy activado (nube naranja), lo que ves es el certificado de Cloudflare. Para ver el de tu servidor, conéctate a su IP directamente:
openssl s_client -connect 203.0.113.10:443 -servername tudominio.com </dev/null 2>/dev/null | openssl x509 -noout -dates
Si el de origen está caducado y tienes el modo «Full (strict)», los visitantes verán el error 526 de Cloudflare.
Cómo renovar un certificado SSL caducado, según dónde esté
Con certbot (servidor propio con Nginx o Apache)
- Mira qué certificados tiene certbot y cuándo caducan:
sudo certbot certificates
- Prueba la renovación sin tocar nada, para ver el error real:
sudo certbot renew --dry-run
- Si el error habla de
Timeout during connectounauthorized, el problema está en la validación: comprueba que el dominio apunta a este servidor (dig +short A tudominio.com), que el puerto 80 está abierto y que/.well-known/acme-challenge/no redirige a otro sitio ni lo bloquea ninguna regla. - Cuando la prueba salga bien, renueva de verdad:
sudo certbot renew
- Recarga el servidor web para que use el certificado nuevo:
sudo nginx -t && sudo systemctl reload nginx
# o, con Apache:
sudo apachectl configtest && sudo systemctl reload apache2
- Comprueba que la renovación automática está programada y mira su último resultado:
systemctl list-timers | grep -i certbot
journalctl -u certbot.service --since "-30 days" | tail -n 30
Si certbot no recarga el servidor solo, añade un hook de despliegue para que lo haga tras cada renovación:
sudo certbot renew --deploy-hook "systemctl reload nginx"
Con Plesk
En Sitios web y dominios, entra en «Certificados SSL/TLS» del dominio y renueva el certificado de Let’s Encrypt (en versiones antiguas, extensión «SSL It!»). Asegúrate de marcar las variantes con y sin www y, si lo usas, el correo. Si falla, Plesk enseña el motivo: casi siempre el dominio no apunta al servidor o algo bloquea la ruta de validación.
Con cPanel
En «SSL/TLS Status», pulsa «Run AutoSSL». Si un dominio sale en rojo, el mensaje de al lado dice por qué no se ha podido validar. AutoSSL no renueva dominios que no resuelven al servidor, así que si el DNS está en otro sitio, comprueba primero los registros A.
Con Cloudflare
Cloudflare renueva solo su certificado de borde. El que tienes que vigilar es el de tu servidor de origen. Si usas un Origin Certificate de Cloudflare, dura lo que eligieras al crearlo (hasta 15 años) y no es un problema; si usas Let’s Encrypt en el origen, renuévalo como en los apartados anteriores. Ojo: con el proxy activado, la validación por HTTP de Let’s Encrypt suele funcionar, pero algunas reglas de Cloudflare (redirecciones forzadas, reglas de seguridad) pueden bloquearla.
Certificado de pago
Compra la renovación en el proveedor, genera una solicitud nueva (CSR) o reutiliza la que te permita, valida el dominio e instala el certificado nuevo con su cadena completa (el intermedio que te den). No olvides el intermedio: es la causa número uno de errores justo después de renovar. Lo explicamos en falta el certificado intermedio.
Después de renovar, compruébalo desde fuera
openssl s_client -connect tudominio.com:443 -servername tudominio.com </dev/null 2>/dev/null | openssl x509 -noout -enddate
Si sigue saliendo la fecha antigua, el servidor no se ha recargado o el certificado que se entrega no es el que has renovado (CDN, balanceador, otro servidor virtual).
Cómo evitar que vuelva
- Haz que la renovación sea automática en todos los sitios y prueba con
--dry-runo con el registro del panel que funciona de verdad. - Antes de cambiar DNS o migrar, decide qué servidor va a renovar el certificado a partir de ese día.
- No bloquees
/.well-known/acme-challenge/con redirecciones, plugins de seguridad o reglas de cortafuegos. - Lleva un inventario de dónde vive cada certificado: servidor, CDN, balanceador, correo.
- No dependas de correos de aviso. Usa una vigilancia externa que mire el certificado que ve el visitante.
- Prepárate para certificados más cortos. Con 100 días en 2027 y 47 en 2029, cualquier paso manual que quede se convertirá en una caída.
Repasamos todos los errores de certificado, no solo el de caducidad, en errores de certificado SSL: qué significan y cómo resolverlos. Si tu web ni siquiera tiene HTTPS, mira mi web sale como «No es seguro».
Para agencias: que no te pille el cliente
El certificado caducado es la caída más evitable que existe, y la que peor imagen deja: el cliente la ve antes que tú, y la ven sus clientes.
Jeffrey revisa el certificado de cada web cada 6 horas, tal como lo recibe un visitante. Cuando quedan 14 días o menos, te avisa para que lo mires con calma; a 3 días o menos, o si ya ha caducado, abre una alerta crítica y urgente. Como mira lo que se entrega de verdad, también detecta el caso de «se renovó en el servidor pero se sigue sirviendo el antiguo». Si es urgente y no sabes por dónde empezar, escríbenos y lo miramos.
Preguntas frecuentes
¿Cuánto tarda en arreglarse un certificado caducado?
Si la renovación funciona, minutos: renuevas, recargas y listo. Si el problema es de validación (DNS, puerto 80 bloqueado), lo que tardes en encontrar la causa.
¿Los visitantes pueden entrar mientras está caducado?
Pueden saltarse el aviso en algunos navegadores, pero no deberían, y si tu web usa HSTS no podrán. A efectos prácticos, tu web está caída.
¿Puedo pedir un certificado más largo para no tener que renovar?
No. Las autoridades públicas ya no emiten certificados de más de 200 días y el plazo seguirá bajando. La solución es automatizar.
¿Por qué ha caducado si certbot tiene un temporizador?
El temporizador intenta renovar, pero si la validación falla o el servidor no se recarga, el certificado acaba caducando igual. Mira journalctl -u certbot.service para ver el motivo.