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

99 lines
2.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.
```bash
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:
```bash
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:
```bash
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:
```bash
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:
```haproxy
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:
```bash
sudo crontab -e
```
Añade esta línea:
```bash
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. 😃