Los certificados SSL de Let's Encrypt han transformado la seguridad web al ofrecer cifrado gratuito y automatizado. Sin embargo, debido a que estos certificados tienen una validez estricta de 90 días, dependen de que un cliente de software en tu servidor (generalmente llamado Certbot o un módulo nativo de tu panel de control) realice la renovación automática.
Si tu sitio web muestra repentinamente una advertencia de "Conexión no segura" o un error de acceso a nivel de dominio debido a un certificado caducado, significa que el proceso automatizado en segundo plano falló. A continuación, analizamos las causas más comunes de este fallo y cómo solucionarlo.
1. El puerto 80 está bloqueado en el Firewall
Para renovar el certificado, Let's Encrypt utiliza un método de validación estándar llamado HTTP-01. El servidor de Let's Encrypt realiza una solicitud web a tu dominio para verificar que realmente apunte a tu servidor.
-
El problema: Esta solicitud de verificación se realiza estrictamente a través del puerto 80 (HTTP). Si recientemente realizaste un mantenimiento de seguridad, configuraste un firewall estricto en tu VPS, o un plugin de seguridad bloqueó el puerto 80 para forzar únicamente el puerto 443 (HTTPS), Let's Encrypt no podrá completar la validación y la renovación fallará.
2. Cambios en los registros DNS o uso de Proxies (como Cloudflare)
La automatización requiere que el dominio apunte directamente a la dirección IP del servidor donde se ejecuta el script de renovación.
-
El problema: Si cambiaste de proveedor de alojamiento, modificaste la zona DNS o activaste el modo proxy ("la nube naranja") en Cloudflare, el servidor de Let's Encrypt podría recibir la IP del proxy en lugar de la IP real de tu servidor. Si Cloudflare no está configurado correctamente para permitir solicitudes a carpetas del sistema, la validación fallará.
3. Redirecciones conflictivas en la aplicación o servidor
Para verificar tu identidad, el script de renovación crea un archivo temporal dentro de una ruta pública específica de tu sitio web: http://tudominio.com/.well-known/acme-challenge/.
-
El problema: Si tu servidor web (Nginx/Apache) o las reglas de enrutamiento de tu aplicación (por ejemplo, configuraciones de desarrollo en un backend de Python) tienen una regla de redirección demasiado agresiva que atrapa todas las solicitudes y las redirige a otra página (como un bucle infinito o una página de inicio de sesión), Let's Encrypt no podrá leer el archivo de desafío.
4. Fallos en las tareas programadas del sistema (Cron Jobs o Timers)
La automatización de Let's Encrypt se apoya en el sistema operativo de tu servidor para comprobar dos veces al día si el certificado necesita renovación.
-
El problema: Si el servicio de tareas programadas (Cron en Linux o los Systemd Timers) se detuvo, si el servidor experimentó un reinicio de emergencia que alteró los servicios, o si el script de Certbot se corrompió debido a una actualización del sistema desatendida, la orden de renovación nunca llegará a ejecutarse.