2.8 KiB
Sí, puedes usar Let's Encrypt para generar certificados SSL gratuitos y configurarlos en HAProxy para tus distintos sitios. Aquí tienes un resumen de cómo hacerlo:
1️⃣ Instalar Certbot en tu Servidor
Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
sudo apt update && sudo apt upgrade -y
sudo apt install certbot -y
Si HAProxy está en la misma máquina donde se servirán los sitios, puedes usar Certbot en modo standalone.
2️⃣ Generar Certificados para cada Dominio
Ejecuta el siguiente comando para generar un certificado para tu dominio:
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
# Ejemplo:
sudo certbot certonly --standalone -d ai-reports.1.temporal.work -d www.ai-reports.1.temporal.work
Si tienes varios dominios en tu HAProxy, repite el comando para cada uno.
Esto generará los certificados en:
/etc/letsencrypt/live/ejemplo.com/fullchain.pem
/etc/letsencrypt/live/ejemplo.com/privkey.pem
3️⃣ Combinar los Certificados para HAProxy
HAProxy requiere que el certificado y la clave privada estén en un solo archivo. Usa este comando para combinarlos:
cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
/etc/letsencrypt/live/ejemplo.com/privkey.pem > \
/etc/haproxy/certs/ejemplo.com.pem
Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
sudo chmod 600 /etc/haproxy/certs/*.pem
4️⃣ Configurar HAProxy para HTTPS
Edita el archivo de configuración de HAProxy (generalmente en /etc/haproxy/haproxy.cfg
) y agrega la configuración SSL para cada dominio:
frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
mode http
use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
backend backend_ejemplo
server srv1 192.168.1.100:80 check
Esto permite que HAProxy seleccione el certificado correcto según el hostname de la solicitud.
5️⃣ Renovación Automática
Let's Encrypt requiere renovar los certificados cada 90 días. Configura una tarea en cron para renovar y actualizar los archivos automáticamente:
Edita el crontab:
sudo crontab -e
Añade esta línea:
0 3 * * * certbot renew --quiet && systemctl reload haproxy
Esto intentará renovar los certificados diariamente a las 3 AM y recargará HAProxy si hay cambios.
✅ Conclusión
Con esto, HAProxy gestionará múltiples sitios con SSL gratuito de Let's Encrypt. Cada dominio tendrá su propio certificado y la renovación será automática. 🚀
Si necesitas ayuda con algún paso, dime cómo tienes configurado tu HAProxy y lo ajustamos. 😃