SSL gratuito de Let's Encrypt para Apache en AlmaLinux 9

3 min
Hosting VPS/VDS

Los navegadores y los buscadores esperan HTTPS, y Let's Encrypt ofrece certificados sin coste. En un VPS Linux Infrawire con AlmaLinux 9, Certbot puede obtener el certificado, modificar la configuración de Apache y renovarlo por sí solo. Los mismos pasos sirven para Rocky Linux 9.

📋 Requisitos previos

  • Un VPS AlmaLinux 9 con acceso root o sudo (IP y contraseña en tu área de cliente).
  • Un dominio, example.com, cuyo registro A (y AAAA para IPv6) apunte a VPS_IP. Espera antes a la propagación del DNS.
  • Apache (httpd) sirviendo el sitio por HTTP en el puerto 80.

1. Instalar Apache y abrir el cortafuegos

Si Apache aún no está instalado, instálalo e inícialo. Después abre HTTP y HTTPS en firewalld; el puerto 80 es necesario para la validación de Let's Encrypt.

Bash
dnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services

2. Crear un host virtual para tu dominio

Certbot busca un ServerName que coincida con tu dominio, así que crea un host virtual propio.

Bash
mkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html

Crea /etc/httpd/conf.d/example.com.conf:

Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>

Comprueba la sintaxis y recarga:

Bash
apachectl configtest systemctl reload httpd

3. Instalar Certbot y mod_ssl

Certbot viene del repositorio EPEL. mod_ssl aporta el módulo TLS de Apache y un certificado por defecto que httpd necesita para escuchar en el puerto 443.

Bash
dnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl

4. Solicitar el certificado

Ejecuta Certbot con el complemento de Apache. Valida el dominio por HTTP, escribe un nuevo host virtual *-le-ssl.conf y puede añadir la redirección de HTTP a HTTPS.

Bash
certbot --apache -d example.com -d www.example.com

Introduce un correo real (se usa para avisos de caducidad), acepta los términos y elige la redirección cuando se te pregunte. Cada nombre indicado con -d debe resolver a este servidor; de lo contrario, la validación falla.

Si SELinux está en modo enforcing (el valor por defecto), no hace falta nada especial en una instalación estándar. No lo desactives para esquivar un error.

5. Comprobar la renovación automática

Los certificados de Let's Encrypt duran 90 días. En AlmaLinux 9 el paquete instala un temporizador de systemd que se ejecuta dos veces al día y solo renueva los certificados próximos a caducar.

Bash
systemctl list-timers | grep certbot systemctl status certbot-renew.timer

Si el temporizador no aparece, actívalo:

Bash
systemctl enable --now certbot-renew.timer

Simula una renovación sin tocar el certificado real:

Bash
certbot renew --dry-run

La última línea debe indicar que todas las renovaciones simuladas han tenido éxito. Apache se recarga automáticamente tras una renovación real.

Verificación

Bash
certbot certificates curl -I https://example.com curl -I http://example.com

El primer comando lista los dominios y la fecha de caducidad. La petición HTTPS debe devolver 200 y la HTTP debería responder con un 301 hacia la dirección HTTPS. En el navegador, el candado debe mostrar un certificado válido emitido por Let's Encrypt. Para ver toda la cadena puedes ejecutar openssl s_client -connect example.com:443 -servername example.com.

Solución de problemas

  • Fallo del desafío o tiempo de espera durante la validación: el DNS aún no apunta al servidor o el puerto 80 está bloqueado. Revisa dig +short example.com, firewall-cmd --list-services y cualquier cortafuegos situado delante del VPS.
  • Certbot no encuentra un host virtual coincidente: el ServerName o ServerAlias de /etc/httpd/conf.d/ no coincide con el dominio indicado. Corrígelo, ejecuta apachectl configtest y vuelve a intentarlo. También puedes usar certbot certonly --apache y configurar las rutas tú mismo.
  • Demasiados certificados o validaciones fallidas (límite de frecuencia): Let's Encrypt limita los intentos repetidos. Prueba antes con certbot --apache --dry-run y espera antes de reintentar.
  • Sitio inaccesible por el 443 tras la instalación: HTTPS no está abierto en firewalld o httpd no se recargó. Ejecuta firewall-cmd --permanent --add-service=https, firewall-cmd --reload y systemctl restart httpd.

🔐 Tu sitio Apache en AlmaLinux 9 ya sirve HTTPS y renueva su certificado por sí solo.

Mantente al día con las últimas ofertas, descuentos y promociones especiales.

Ver promociones

Utilizamos cookies

Utilizamos cookies analíticas para mejorar su experiencia en nuestro sitio. No vendemos datos a terceros. Más información en nuestra política de privacidad.