diff --git a/servidores/dockge/README.md b/servidores/dockge/README.md index 9406a98..bacdc08 100644 --- a/servidores/dockge/README.md +++ b/servidores/dockge/README.md @@ -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* *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:` u `openssl s_client -servername x`.