UA-51298262-10 Skip to main content
Seguridad

Let’s Encrypt con Certbot: configuración y renovación automática

By noviembre 5, 2026No Comments
Let's Encrypt con Certbot: configuración y renovación automática

Certbot y Let’s Encrypt siguen siendo la pareja de facto cuando necesitas certificados SSL/TLS gratuitos en un servidor Linux. Aquí vamos a lo práctico: preparar el servidor, instalar Certbot según tu distribución, emitir el certificado para Nginx o Apache y dejar la renovación automática atada para que el tema de la expiración se te olvide.

Requisitos previos antes de instalar el certificado

No ejecutes nada todavía. Primero revisa esta lista, porque Certbot valida tu dominio mediante un desafío HTTP o DNS y cualquier descuido previo (un registro DNS mal apuntado, un puerto cerrado) hace fallar la emisión. Es la causa más común de errores, créeme.

  • Un dominio apuntando al servidor: el registro A (o AAAA si trabajas con IPv6) debe resolver a la IP pública de tu máquina. Lo compruebas en dos segundos con dig tu-dominio.com +short, o desde cualquier herramienta DNS online.
  • Puerto 80 abierto: el desafío HTTP-01 necesita que el puerto 80 sea accesible desde Internet. Si tienes UFW o firewalld, permite el tráfico web antes de seguir.
  • Acceso root o sudo: vas a instalar paquetes y tocar la configuración del servidor web. Sin permisos de administrador, nada.
  • Virtual host o server block configurado: en Nginx el dominio necesita su bloque con la directiva server_name; en Apache, ServerName. Si está bien puesto, Certbot lo detecta solo.
  • Sistema actualizado: un sudo apt update && sudo apt upgrade en Debian/Ubuntu, o sudo dnf update en Rocky, Alma y Fedora. Evita disgustos con dependencias.

Consejo: ¿tu servidor está detrás de Cloudflare con el proxy activado (la nube naranja)? El desafío HTTP-01 puede fallar. Desactiva el proxy temporalmente o pásate al desafío DNS-01.

Cómo instalar Let’s Encrypt con Certbot en tu servidor

Lo recomendable hoy es instalar vía Snap. ¿Por qué? Porque así Certbot y su plugin de renovación se mantienen siempre en la última versión sin que hagas nada. En Debian, Ubuntu, Rocky Linux y casi cualquier distribución el proceso es el mismo:

  1. Instala Snap si no lo tienes: sudo apt install snapd (en sistemas basados en RHEL: sudo dnf install snapd).
  2. Activa el servicio: sudo systemctl enable –now snapd.socket.
  3. Instala Certbot: sudo snap install –classic certbot.
  4. Crea el enlace simbólico: sudo ln -s /snap/bin/certbot /usr/bin/certbot.

¿Prefieres los repositorios nativos? También vale. En Ubuntu y Debian: sudo apt install certbot python3-certbot-nginx, o python3-certbot-apache si usas Apache. La versión quizá vaya algo por detrás de la de Snap, pero funciona perfectamente.

Comprueba que todo quedó bien con certbot –version. Si te devuelve el número de versión, listo. Ya puedes emitir tu primer certificado.

Emisión del certificado SSL para Nginx y Apache

Aquí Certbot hace buena parte del trabajo por ti: los plugins detectan tu servidor web y modifican la configuración automáticamente. El método más sencillo es este:

Para Nginx

Ejecuta:

sudo certbot –nginx -d tu-dominio.com -d www.tu-dominio.com

Certbot localiza el server block que corresponde, valida el dominio con el desafío HTTP-01, instala el certificado y reescribe la configuración para forzar HTTPS. En medio del proceso te preguntará si quieres redirigir todo el tráfico HTTP a HTTPS. Dile que sí (la opción de redirección), a menos que tengas una razón de peso para no hacerlo.

Para Apache

Mismo comando, distinto plugin:

sudo certbot –apache -d tu-dominio.com -d www.tu-dominio.com

El resultado es equivalente: activa el módulo SSL, instala el certificado y añade la redirección a HTTPS en el virtual host.

Modo certonly

Hay casos donde no quieres que Certbot toque nada de tu configuración. Me refiero a Nginx con configuraciones muy personalizadas, o a otros servidores como Caddy, o a un balanceador por delante. Para eso existe:

sudo certbot certonly –webroot -w /var/www/tu-dominio -d tu-dominio.com

Los archivos del certificado quedan en /etc/letsencrypt/live/tu-dominio.com/ y serás tú quien los referencie a mano donde toque. Con el certificado ya emitido, el siguiente paso es la renovación automática, que dejamos para la segunda parte del artículo.

Configurar la renovación automática con Certbot

Los certificados de Let’s Encrypt caducan a los 90 días. Ni uno más. Por eso la renovación automática no es un extra opcional: es simplemente la manera correcta de trabajar con estos certificados. Lo bueno es que Certbot hace casi todo el trabajo por ti, y en la mayoría de instalaciones actuales ya viene con un temporizador de systemd o una entrada en cron creada durante la propia instalación.

¿Quieres saber si la renovación automática está activa? Ejecuta esto:

certbot renew --dry-run

El comando simula una renovación completa sin tocar nada. Si acaba sin errores, tu sistema renovará solo. En sistemas con systemd puedes comprobar el temporizador con systemctl list-timers | grep certbot; lo normal es que el proceso se ejecute dos veces al día.

Y si el temporizador no existe (pasa, sobre todo en instalaciones antiguas), créalo a mano. Añade esta entrada al crontab de root con crontab -e:

0 3,15 * * * /usr/bin/certbot renew --quiet

Recomiendo encarecidamente añadir también un hook que recargue el servidor web después de cada renovación. Sin eso, Nginx o Apache seguirán sirviendo el certificado viejo hasta que los reinicies. Puedes hacerlo con el parámetro –deploy-hook o editando el archivo de renovación en /etc/letsencrypt/renewal/tu-dominio.com.conf:

certbot renew --deploy-hook "systemctl reload nginx"

Verificar y solucionar problemas comunes de renovación

Una renovación puede fallar por muchos motivos, y pillarlo a tiempo es la diferencia entre una incidencia silenciosa y un sitio entero mostrando el aviso rojo de certificado caducado. Los errores que más me he encontrado (y verás tú) son estos:

  • El desafío HTTP-01 falla: el puerto 80 tiene que seguir abierto y accesible desde fuera. Si forzaste una redirección completa a HTTPS o bloqueaste el directorio /.well-known/acme-challenge/, la validación no pasará. Añade una excepción en la configuración de Nginx o Apache.
  • DNS desactualizado: si el dominio ya no apunta al servidor donde vive el certificado, Let’s Encrypt no podrá verificarlo. Comprueba con dig tu-dominio.com que la resolución sea la correcta.
  • Límite de rate alcanzado: Let’s Encrypt permite como máximo 5 duplicados de certificado por semana. Si llevas muchos reintentos seguidos, espera un poco antes de volver a probar.
  • Certbot desactualizado: las versiones antiguas a veces fallan con los cambios de la API de ACME. Actualiza con el gestor de paquetes de tu distribución, por ejemplo apt update && apt install –only-upgrade certbot.

Cuando algo falle, ve directo al log: /var/log/letsencrypt/letsencrypt.log. Ahí está el mensaje exacto del error, no una versión edulcorada. Y otra cosa que conviene hacer desde el principio: configura una notificación por correo con –email tu@correo.com al emitir el certificado, porque Let’s Encrypt avisa cuando uno está a punto de caducar sin haberse renovado.

Consejo: acostúmbrate a revisar una vez al mes el estado de tus certificados con certbot certificates. El comando lista todos los gestionados junto a su fecha de caducidad, así detectas los problemas antes de que los noten tus visitantes.

Conclusión: SSL siempre al día con Let’s Encrypt

Montar Let’s Encrypt con Certbot es, dentro de la administración de servidores web, de lo que mejor relación esfuerzo-beneficio tiene: en unos minutos tienes cifrado HTTPS gratis, certificados válidos y renovación automática que te quita el mantenimiento de encima. La clave está en tres hábitos: verificar la renovación con una ejecución de prueba, mantener bien configurados los hooks de recarga del servidor web y mirar los logs de vez en cuando.

La seguridad no termina en el certificado, eso sí. Combina el HTTPS con cabeceras HSTS, mantén Certbot al día y no ignores las alertas por correo de Let’s Encrypt. Y si en algún momento la configuración se complica, aparece un error de renovación que no consigues diagnosticar o necesitas migrar certificados entre servidores, en RedServicio (redservicio.net) encontrarás asistencia profesional especializada en hosting, WordPress y administración de servidores para resolver cualquier incidencia técnica de forma rápida y garantizada.