Fase 2: 04_sanitize.py - scrubbing de secretos de skills/agentes/plans (10 secretos unicos, gate en verde)
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Plan: Habilitar SSL en PostgreSQL para conexiones externas
|
||||
|
||||
## Context
|
||||
|
||||
Se quiere que PostgreSQL acepte tanto conexiones no encriptadas (para la app interna) como conexiones encriptadas SSL (para administración remota). PostgreSQL lo soporta nativamente: se habilita SSL en el servidor y cada cliente decide si lo usa o no.
|
||||
|
||||
## Cambios
|
||||
|
||||
### 1. Generar certificado SSL auto-firmado
|
||||
|
||||
Crear un script de setup que genere el certificado al iniciar el contenedor por primera vez:
|
||||
|
||||
```bash
|
||||
# luminarrh/generate-ssl.sh
|
||||
openssl req -new -x509 -days 3650 \
|
||||
-nodes \
|
||||
-text \
|
||||
-out server.crt \
|
||||
-keyout server.key \
|
||||
-subj "/CN=postgres"
|
||||
chmod 600 server.key
|
||||
cat server.crt server.key > server-ssl.pem
|
||||
rm server.crt server.key
|
||||
```
|
||||
|
||||
### 2. Actualizar `postgresql.conf`
|
||||
|
||||
Agregar al final:
|
||||
|
||||
```conf
|
||||
# SSL
|
||||
ssl = on
|
||||
ssl_cert_file = '/var/lib/postgresql/18/docker/server-ssl.pem'
|
||||
ssl_key_file = '/var/lib/postgresql/18/docker/server-ssl.pem'
|
||||
```
|
||||
|
||||
### 3. Actualizar `docker-compose.yaml`
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- /volume1/docker/postgres/postgres-sarh/data:/var/lib/postgresql
|
||||
- /volume1/docker/projects/synology-apps-containers/luminarrh/databases/postgresql.conf:/etc/postgresql/postgresql.conf
|
||||
- ./luminarrh_demo.sql:/docker-entrypoint/initdb.d/luminarrh_demo.sql
|
||||
- ./generate-ssl.sh:/docker-entrypoint/initdb.d/generate-ssl.sh # nueva línea
|
||||
```
|
||||
|
||||
### 4. Crear `luminarrh/generate-ssl.sh`
|
||||
|
||||
Script ejecutable que se corre en el primer inicio del contenedor para generar el certificado SSL.
|
||||
|
||||
## Cómo funciona
|
||||
|
||||
- **App interna**: Se conecta sin SSL (sin cambiar nada en la app, funciona como antes)
|
||||
- **Admin externo**: Se conecta con SSL usando `sslmode=require` o `sslmode=verify-full`
|
||||
|
||||
## Verificación
|
||||
|
||||
1. `docker compose -f luminarrh/docker-compose.yaml up -d`
|
||||
2. Verificar SSL activo: `docker exec -i postgres-sarh psql -U sarh2 -d sarh_db -c "SHOW ssl;"`
|
||||
3. Conectar con SSL: `psql "host=IP port=5434 dbname=sarh_db user=sarh2 sslmode=require"`
|
||||
4. Conectar sin SSL (desde app interna): `psql "host=IP port=5434 dbname=sarh_db user=sarh2"`
|
||||
Reference in New Issue
Block a user