openbsd relayd desafio
Origen
Pasé tres horas mirando un error de sintaxis.
Línea 17. relayd.conf. syntax error.
Estaba intentando configurar relayd en OpenBSD 7.8 para manejar TLS y hacer reverse proxy a mi sitio Astro y API Node.js. En el papel, simple. En la práctica, una pesadilla de parser rígido y rutas de certificados oscuras.
Cada vez que ejecutaba doas relayd -n, recibía errores diferentes. protocol defined twice. listen * inside location. last octet invalid.
Me di cuenta de que no estaba solo configurando un servicio. Estaba negociando con un sistema operativo que no perdona aproximaciones.
El Nexo
¿Por qué el Monolito archiva esto? Porque la soberanía digital tiene un coste: la complejidad técnica.
Usar Vercel o Cloudflare habría sido más fácil. Un click y el TLS está activo. Pero habría cedido el control del tráfico a una caja negra.
Con relayd, cada byte que entra en el puerto 443 pasa por una configuración que escribí yo. Sé exactamente cómo se maneja el handshake TLS. Sé dónde están los logs. Sé quién puede acceder.
El nexo es estructural: si quiero poseer mi espacio digital, debo poseer también la capa de transporte. No puedo delegar la seguridad a terceros.
Esta configuración no es solo código. Es una declaración de independencia.
El Desafío
La duda interior fue: “¿Vale la pena? Podría usar httpd directamente.”
La respuesta: no. httpd no hace reverse proxy a Node.js para webmentions. Necesito relayd.
El desafío técnico fue doble:
- Sintaxis: OpenBSD 7.8 tiene un parser de
relayd.confextremadamente sensible. Comillas incorrectas, espacios extra, orden de directivas. - Certificados:
relaydbusca los certificados en rutas específicas. Los enlaces simbólicos no funcionaban. Los permisos eran demasiado laxos.
La solución llegó eliminando las abstracciones:
- Sin
tls keypairen el config. - Copia física de los certificados en
/etc/ssl/0.0.0.0.crt. - Permisos
600en la clave privada. - Debug con
relayd -vnen lugar derelayd -n.
Cuando finalmente netstat mostró *.443 LISTEN, entendí: la dificultad era el filtro. Si fuera fácil, no sería seguro.
Paz Mental
Ahora que he escrito esto, he aceptado el pacto con OpenBSD:
- La complejidad es el precio de la soberanía.
- Los errores de sintaxis no son fallos, son correcciones de rumbo.
- El sistema es estable porque cada componente fue comprendido, no copiado.
La Paz Mental viene de saber que si el sitio cae, puedo levantarlo yo. No tengo que abrir un ticket. No tengo que esperar un soporte técnico.
El Monolito no es solo un sitio. Es un sistema operativo para mi presencia digital. Y relayd es el guardián de la puerta.
Nota técnica:
- OpenBSD 7.8 requiere certificados físicos, no enlaces simbólicos para relayd
- Ruta clave:
/etc/ssl/private/0.0.0.0.key(permisos 600)- Ruta cert:
/etc/ssl/0.0.0.0.crt(permisos 644)- Debug:
doas relayd -vn(check verbose)- Reload:
doas rcctl restart relayd- Trigger: si
relaydfalla, comprobar permisos de clave privada antes que la sintaxis