Inicio » Cómo forzar la renovación de un certificado SSL de Let's Encrypt expirado con Certbot
Sistemas y Servidores

Cómo forzar la renovación de un certificado SSL de Let's Encrypt expirado con Certbot

✨ Respuesta Rápida

El error de certificado SSL expirado al acceder a tu sitio web, a pesar de usar Certbot de Let's Encrypt, ocurre habitualmente porque el servicio automático de renovación falló silenciosamente debido al bloqueo del puerto 80 por parte de tu servidor web en conflicto, o por cambios en tus registros DNS.

El Diagnóstico Rápido

Causa
Certificado SSL/TLS de Let's Encrypt expirado por fallo en el proceso de renovación
Solución
Forzar la renovación del certificado: sudo certbot renew --force-renewal
Causa
Desafío HTTP-01 fallido por puerto 80 cerrado o bloqueado
Solución
Asegurar que el servidor web responda en el puerto 80 y reiniciar Nginx/Apache

El error de certificado SSL expirado al acceder a tu sitio web, a pesar de usar Certbot de Let's Encrypt, ocurre habitualmente porque el servicio automático de renovación falló silenciosamente debido al bloqueo del puerto 80 por parte de tu servidor web en conflicto, o por cambios en tus registros DNS.

La Solución Paso a Paso

  1. 1

    Paso 1: Identificar y liberar puertos bloqueados

    Let's Encrypt utiliza el desafío HTTP-01 para verificar que eres dueño del dominio, lo que requiere acceso libre en el puerto 80. Detén temporalmente el servidor web en conflicto:

    BASH
    # Si utilizas Nginx
    sudo systemctl stop nginx
    
    # Si utilizas Apache
    sudo systemctl stop apache2
    
  2. 2

    Paso 2: Ejecutar la renovación forzada de Certbot

    Inicia la renovación manual forzada para ignorar las políticas de caché de expiración previas:

    BASH
    # Forzar la renovación en consola
    sudo certbot renew --force-renewal
    

    (Verifica que la consola te devuelva un mensaje de éxito: Congratulations, all renewals succeeded).

  3. 3

    Paso 3: Volver a iniciar los servidores web y verificar

    Reinicia tus servicios de producción para aplicar las nuevas llaves criptográficas:

    BASH
    sudo systemctl start nginx
    sudo systemctl start apache2
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • No dependas exclusivamente de renovaciones manuales periódicas para la seguridad de tus sitios. Asegúrate de verificar que el temporizador interno de renovación automática de Certbot esté activo en el sistema, lo que validará el estado del certificado dos veces al día:
    BASH
    # Verificar el estado del temporizador systemd
    systemctl list-timers | grep certbot
    
    Si los desafíos HTTP en el puerto 80 fallan de forma regular debido a cortafuegos de seguridad corporativos, migra tu proceso de validación al desafío DNS-01 utilizando las API correspondientes de tu proveedor de nombres (Cloudflare, Route53, etc.).