99 lines
2.8 KiB
Markdown
99 lines
2.8 KiB
Markdown
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. 😃 |