bg-tutorials

Cómo instalar un certificado SSL ACME en Apache y NGINX

Si tienes un servidor web, protegerlo con HTTPS es una norma básica. Gracias al protocolo ACME (Automated Certificate Management Environment), puedes automatizar la emisión y renovación de certificados SSL mediante herramientas como Certbot.

ACME SSL en Apache y Nginx

En esta guía aprenderás a instalar un certificado ACME en Apache y NGINX utilizando Certbot en distintas distribuciones de Linux. Cubriremos los sistemas basados en Debian y RHEL, incluiremos aclaraciones cuando sea necesario, y te guiaremos a través de todo, desde la instalación hasta la renovación automatizada.


Antes de empezar

Antes de empezar, comprueba que:

  • Tienes acceso sudo o root a tu servidor
  • Tu nombre de dominio apunta a la dirección IP pública de tu servidor mediante DNS
  • Los puertos 80 y 443 están abiertos en tu cortafuegos o grupo de seguridad del proveedor de la nube
  • Tu sistema está actualizado y es compatible

Paso 1 – Instala Certbot en tu SO

Certbot es el cliente ACME que utilizaremos para solicitar y renovar certificados SSL. Repasaremos las instrucciones de configuración para cada SO soportado. Elige el que coincida con tu servidor.

Ediciones Ubuntu LTS con APT

Actualiza los paquetes e instala Certbot con tu plugin de servidor web preferido:

Apache:

sudo apt update
sudo apt install certbot python3-certbot-apache

NGINX:

sudo apt update
sudo apt install certbot python3-certbot-nginx

Sistemas Debian compatibles con APT

El mismo proceso que en Ubuntu:

sudo apt update
sudo apt install certbot python3-certbot-apache # for Apache
sudo apt install certbot python3-certbot-nginx # for NGINX

En sistemas Debian, instalar Certbot mediante APT es la opción más sencilla. Si prefieres utilizar Snap (para la última versión), desplázate hasta la sección Snap más abajo.

AlmaLinux o Rocky Linux (compatible con RHEL)

Habilita primero el repositorio EPEL:

sudo dnf install epel-release
sudo dnf update

A continuación, instala Certbot con el plugin de tu elección:

Apache:

sudo dnf install certbot python3-certbot-apache

NGINX:

sudo dnf install certbot python3-certbot-nginx

Alternativa: Instalar Certbot mediante Snap (Todos los sistemas)

Si quieres la última versión directamente de la fuente, utiliza Snap.

1. Instala Snap (si no está ya instalado):

sudo apt install snapd # Ubuntu/Debian
sudo dnf install snapd # AlmaLinux/Rocky

2. Instala y vincula Certbot:

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Opcional: Instala Certbot con pip (para configuraciones personalizadas)

Este método está pensado para usuarios avanzados o entornos personalizados en los que no están disponibles los paquetes Snap o OS. Sólo debes utilizarlo si

  • Estás ejecutando Certbot en un entorno virtual
  • Trabajas con contenedores mínimos
  • Tu SO no soporta snapd, apt o dnf de forma limpia

Para instalar Certbot usando pip:

python3 -m pip install --upgrade certbot

Esto instala el núcleo de la herramienta Certbot, pero no configurará la renovación automática, y no instala los plugins de Apache o NGINX. Tendrás que configurarlo todo manualmente

Si no estás seguro de lo que esto significa, vuelve atrás y utiliza en su lugar las instrucciones APT, DNF o Snap.

También puedes instalar plugins (como el de NGINX) utilizando pip:

python3 -m pip install certbot-nginx

Utiliza pip sólo si el entorno de tu sistema requiere un control o aislamiento total.


Paso 2 – Solicitar e instalar tu certificado ACME

Hay dos enfoques principales: totalmente automatizado o específico del proveedor utilizando credenciales EAB (External Account Binding). Ambos se describen a continuación.

Opción A: Totalmente automatizado (ACME estándar)

Deja que Certbot se encargue de todo: solicitar, verificar, instalar y recargar la configuración de tu servidor.

Apache:

sudo certbot --apache

NGINX:

sudo certbot --nginx

Se te preguntará:

  • Qué dominio(s) asegurar
  • Si redirigir todo el tráfico HTTP a HTTPS
  • Tu correo electrónico para recordatorios de renovación

Certbot se encarga de la validación y la configuración del servidor web entre bastidores.

Opción B: Utilizar proveedor ACME externo (por ejemplo, Sectigo) con EAB

Si tu proveedor requiere Vinculación externa de cuentas, utiliza este método:

sudo certbot --nginx \
--non-interactive \
--agree-tos \
--email [email protected] \
--server https://acme.sectigo.com/v2/DV \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--domain example.com \
--domain www.example.com \
--cert-name my-website-cert

Sustituye --nginx por --apache para la configuración de Apache.

Recibirás --eab-kid y --eab-hmac-key de tu proveedor de certificados al registrar una cuenta ACME.

Opción C: Utilizar Certbot en Modo Manual

Si no quieres que Certbot modifique la configuración de tu servidor web, o utilizas una configuración personalizada, puedes solicitar un certificado manualmente.

A continuación te explicamos cómo hacerlo utilizando el método webroot:

sudo certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-d www.example.com \
--email [email protected] \
--agree-tos \
--non-interactive

  • –certonly le dice a Certbot que emita el certificado pero que no lo instale
  • -w especifica el directorio raíz de tu sitio web (debe ser accesible públicamente a través del puerto 80)

Tras la emisión, configura manualmente tu servidor web con los archivos de certificado ubicados en:

/etc/letsencrypt/live/yourdomain.com/

Nota: Esta ruta se utiliza independientemente del proveedor de ACME que elijas, a no ser que anules el directorio de almacenamiento utilizando las banderas avanzadas (–config-dir, –work-dir).

Asegúrate de recargar tu servidor web después de aplicar las rutas de cert a tu config.


Paso 3 – Comprueba que todo funciona

Visita tu dominio en un navegador. Deberías ver el candado de seguridad o simplemente la carga correcta de la página en Chrome. Para volver a comprobar que el servidor está funcionando:

sudo systemctl status apache2 # Debian/Ubuntu (Apache)
sudo systemctl status httpd # AlmaLinux/Rocky (Apache)
sudo systemctl status nginx # All systems (NGINX)

Y para inspeccionar el certificado desde el terminal:

openssl s_client -connect yourdomain.com:443

Busca fechas válidas y el nombre de la CA de tu proveedor en el resultado.


Paso 4 – Configurar la renovación automática

El protocolo ACME admite la renovación automática de certificados, y Certbot está diseñado para gestionarla sin problemas mediante un temporizador systemd integrado o una tarea cron. Sin embargo, el comportamiento de la renovación depende de tu proveedor de certificados:

Las CA gratuitas (como Let’s Encrypt) emiten certificados válidos durante 90 días y admiten comprobaciones frecuentes de renovación.

Las CA comerciales (como Sectigo o Digicert) suelen emitir certificados válidos durante 1 año a través de ACME, pero siguen el proceso de renovación de ACME. Certbot también los gestiona automáticamente, pero con menos frecuencia.

Comprueba que la renovación está programada

Certbot configura por defecto un temporizador del sistema o cron job. Puedes confirmar que está activo con

systemctl list-timers | grep certbot

Esto garantiza que Certbot comprueba tus certificados regularmente (normalmente dos veces al día) y los renueva sólo cuando están dentro de la ventana de renovación (normalmente 30 días antes de que caduquen).


Palabras finales

Certbot y el protocolo ACME simplifican la gestión de SSL. Esta guía te da todo lo que necesitas para instalar un certificado ACME en Apache y NGINX con renovación automática, validación clara y control total cuando sea necesario.

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

Una imagen detallada de un dragón en vuelo
Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.