Certbot en Linux: HTTPS y renovación comprobable

Índice de contenido
  1. Prepara dominio y servidor
  2. Instala un solo plugin
  3. Emite e instala el certificado
  4. Comprueba la respuesta pública
  5. Verifica cómo se renovará
  6. Cuándo cambia el método de validación
  7. Retirada y recuperación
  8. Preguntas frecuentes
    1. ¿El certificado siempre dura 90 días?
    2. ¿Necesito mantener abierto el puerto 80 después de activar HTTPS?
    3. ¿Por qué renew funciona pero el navegador muestra un certificado viejo?
  9. En pocas palabras
  10. Conclusión
  11. Fuentes y documentación

Certbot automatiza la solicitud de certificados TLS y puede configurar Apache o Nginx para servir HTTPS. El certificado acredita el dominio validado; no corrige por sí mismo permisos, vulnerabilidades de una aplicación o configuraciones de acceso.

Esta guía se centra en el ciclo operativo del certificado en Ubuntu o Debian. Se utiliza el paquete de la distribución cuando está mantenido para esa versión. Certbot también documenta otros métodos, como snap: elige uno y evita mezclar instalaciones.

Prepara dominio y servidor

Para el desafío HTTP-01 habitual necesitas que cada nombre solicitado resuelva hacia el servidor que atenderá la validación y que el puerto 80 sea accesible desde internet.

Revisa registros A y AAAA. Un IPv6 incorrecto puede afectar la validación aunque IPv4 funcione. Si utilizas un CDN o balanceador, identifica dónde termina TLS y quién recibirá la petición del desafío.

Solicita solo nombres que controles y que estén configurados. Añadir www por costumbre puede hacer fallar una solicitud si ese nombre no resuelve.

Instala un solo plugin

Para Apache:

sudo apt update
apt-cache policy certbot python3-certbot-apache
sudo apt install certbot python3-certbot-apache
sudo apache2ctl configtest

Para Nginx, como alternativa:

sudo apt update
apt-cache policy certbot python3-certbot-nginx
sudo apt install certbot python3-certbot-nginx
sudo nginx -t

No hace falta instalar ambos servidores. Confirma la versión con certbot --version y conserva una copia de sus archivos de configuración antes de permitir modificaciones.

Emite e instala el certificado

Con el virtual host HTTP funcionando en tu dominio, ejecuta solo el comando correspondiente:

sudo certbot --apache -d ejemplo.com
sudo certbot --nginx -d ejemplo.com

Sustituye ejemplo.com. Revisa las condiciones y decisiones que presenta tu versión. No bases la supervisión en supuestos avisos de correo: necesitas comprobar el certificado y su fecha de expiración desde tu infraestructura.

Los plugins pueden modificar la configuración web. Revisa los cambios y valida de nuevo la sintaxis. Si el servicio está detrás de otro terminador TLS, instalar aquí un certificado no cambia necesariamente lo que reciben los visitantes.

Comprueba la respuesta pública

curl -I https://ejemplo.com/
curl -I http://ejemplo.com/
sudo certbot certificates

Comprueba que HTTPS valida sin omitir errores y que HTTP se redirige según la política elegida. Si necesitas inspeccionar el certificado servido:

openssl s_client -connect ejemplo.com:443 -servername ejemplo.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Este último comando muestra datos del certificado; no reemplaza una validación completa de confianza o una prueba de la aplicación.

Verifica cómo se renovará

sudo certbot renew --dry-run
systemctl list-timers --all

El ensayo de renovación utiliza el entorno de pruebas correspondiente y comprueba la posibilidad de renovar. No equivale a desplegar un certificado nuevo de producción.

Localiza el timer o cron instalado por tu método y revisa su estado y registros. No asumas que todos los sistemas utilizan una unidad llamada certbot.timer. Evita crear otra tarea si ya existe una programación funcional.

Después de una renovación, el proceso que sirve TLS debe cargar el certificado actualizado. Los plugins suelen integrar esta operación; con certonly y una instalación manual tendrás que definir y probar un deploy hook adecuado.

Cuándo cambia el método de validación

Standalone necesita un puerto disponible para levantar su servidor temporal. Detener Apache cada vez añade interrupciones y exige automatizar ese ciclo; considera el plugin o webroot cuando corresponda.

DNS-01 es útil para certificados comodín y otros escenarios. Requiere publicar registros TXT y, para automatizar, proteger las credenciales del proveedor DNS con permisos limitados. No abras puertos nuevos si has elegido un método que no los necesita.

Retirada y recuperación

Eliminar una entrada con certbot delete no equivale a revocar el certificado. Antes de retirarla, quita las referencias del servidor web o podrías impedir su arranque.

Si una clave privada se ha comprometido, sigue el procedimiento de revocación y emite una nueva clave y certificado. No fuerces renovaciones repetidas para diagnosticar un problema: utiliza pruebas, registros y documentación de los límites del servicio.

Preguntas frecuentes

¿El certificado siempre dura 90 días?

La duración depende del perfil y de las políticas vigentes. Comprueba las fechas reales y permite que el cliente mantenido determine cuándo corresponde renovar.

¿Necesito mantener abierto el puerto 80 después de activar HTTPS?

Si renuevas mediante HTTP-01, la validación debe seguir siendo accesible en 80. DNS-01 utiliza otro mecanismo y no requiere ese puerto.

¿Por qué renew funciona pero el navegador muestra un certificado viejo?

Puede faltar una recarga o el certificado público puede estar servido por un proxy, CDN o balanceador distinto. Comprueba el punto que termina TLS.

En pocas palabras

Certbot obtiene y administra certificados, pero la continuidad depende de DNS, validación de dominio, programación y recarga del servicio. Una emisión inicial correcta no demuestra que todas las renovaciones futuras funcionarán.

Conclusión

Guarda el método de instalación y validación elegido. Comprueba la renovación después de cambiar DNS, firewall, proxy o servidor web y supervisa el certificado que realmente recibe el visitante.

Para continuar, revisa Cómo instalar Ubuntu desde una USB: paso a paso y Cómo instalar Docker en Ubuntu 24.04: guía práctica paso a paso.

Fuentes y documentación

Documentación de certbot.eff.org.

Documentación de eff-certbot.readthedocs.io.

Documentación de letsencrypt.org.

Subir

Descubre más de Sergio Caballero

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Continuar leyendo