obsidian-dix/DIX-Notes/Otras_varias/SSL red local con HAProxy.md

2.8 KiB
Raw Permalink Blame History

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. 😃