Caddy/GetAStatic: fix propagation_delay 120s + regla redirect DNS OPNsense + procedimiento seguro (validate antes)

This commit is contained in:
Orquestrador CAS
2026-09-21 08:51:33 +00:00
parent 2532906f02
commit b80ab60100

View File

@@ -181,3 +181,39 @@ Estos servicios generan errores `502` en Caddy porque sus backends no están acc
*Documentación Caddy / Dockge - Consultoria Alcaraz Salazar* *Documentación Caddy / Dockge - Consultoria Alcaraz Salazar*
*Actualizado: 21 de Junio de 2026* *Actualizado: 21 de Junio de 2026*
---
## ⚠️ Caddy + GetAStatic: certificados y DNS (Sept 2026) — LECTURA OBLIGATORIA
### El problema y su causa raíz
Los certificados nuevos fallaban con:
```
querying authoritative nameservers: read udp -> 162.159.38.193:53: no route to host
```
**Causa**: la verificación de propagación DNS de Caddy (certmagic) consulta los **nameservers autoritativos** directamente por UDP/53 — y el ISP de la oficina (CGNAT) **bloquea el DNS externo**. Los certificados existentes funcionan porque se emitieron antes de la mudanza.
### El fix aplicado
1. **`propagation_delay 120s` en TODOS los bloques `tls`** (24 bloques): hace que el solver **espere** en vez de fallar en la verificación. ⚠️ **Requiere unidad** (`120s`, no `120` — sin unidad el contenedor entra en **crash loop** y **todos los servicios caen**).
2. **Regla NAT "Redirect DNS" en el OPNsense**: todo el tráfico UDP/TCP 53 de la LAN se redirige al resolver local (127.0.0.1) — el resolver del OPNsense sí resuelve (usa DoT, no bloqueado).
### Procedimiento seguro para editar el Caddyfile (¡obligatorio!)
```bash
# 1. extraer, editar
docker exec caddy cat /etc/caddy/Caddyfile > /tmp/Caddyfile.host
# (editar /tmp/Caddyfile.host)
# 2. VALIDAR ANTES DE APLICAR ← la lección del crash loop
docker exec -i caddy caddy validate --adapter caddyfile --config /dev/stdin < /tmp/Caddyfile.host
# 3. solo si dice "Valid configuration":
docker cp /tmp/Caddyfile.host caddy:/etc/caddy/Caddyfile
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
```
### Otros hallazgos de la sesión
- **Backoff largo de ACME**: tras fallos, Caddy reintenta en horas. Forzar con `docker restart caddy` (reintenta al arrancar).
- **Backend de PegaProx colgado**: `127.0.0.1:5000` con conexiones en cola (app viva pero muda) → `systemctl restart pegaprox` en el LXC 125. Síntoma: el dominio da timeout tras completar el TLS.
- **Medir TLS con SNI correcto**: `curl -H "Host: x"` NO cambia el SNI (da falsos 000). Usar `--resolve x:443:<ip>` u `openssl s_client -servername x`.