openbsd relayd sfida

AUTORE: Tiziano Gasparet DATA: 26 febbraio 2026

Origine

Ho passato tre ore a fissare un errore di sintassi.

Riga 17. relayd.conf. syntax error.

Stavo cercando di configurare relayd su OpenBSD 7.8 per gestire il TLS e fare reverse proxy verso il mio sito Astro e l’API Node.js. Sulla carta, semplice. Nella pratica, un incubo di parser rigido e percorsi di certificati oscuri.

Ogni volta che lanciavo doas relayd -n, ricevevo errori diversi. protocol defined twice. listen * inside location. last octet invalid.

Mi sono reso conto che non stavo solo configurando un servizio. Stavo negoziando con un sistema operativo che non perdona approssimazioni.

Il nesso

Perché il Monolito archivia questo? Perché la sovranità digitale ha un costo: la complessità tecnica.

Usare Vercel o Cloudflare sarebbe stato più facile. Un click e il TLS è attivo. Ma avrei ceduto il controllo del traffico a una scatola nera.

Con relayd, ogni byte che entra sulla porta 443 passa attraverso una configurazione che ho scritto io. So esattamente come viene gestito l’handshake TLS. So dove sono i log. So chi può accedere.

Il nesso è strutturale: se voglio possedere il mio spazio digitale, devo possedere anche il livello di trasporto. Non posso delegare la sicurezza a terzi.

Questa configurazione non è solo codice. È una dichiarazione di indipendenza.

La sfida

Il dubbio interiore è stato: “Ne vale la pena? Potrei usare httpd direttamente.”

La risposta: no. httpd non fa reverse proxy verso Node.js per le webmention. Mi serve relayd.

La sfida tecnica è stata duplice:

  1. Sintassi: OpenBSD 7.8 ha un parser di relayd.conf estremamente sensibile. Virgolette sbagliate, spazi extra, ordine delle direttive.
  2. Certificati: relayd cerca i certificati in percorsi specifici. I link simbolici non funzionavano. I permessi erano troppo lassisti.

La soluzione è arrivata eliminando le astrazioni:

  • Niente tls keypair nel config.
  • Copia fisica dei certificati in /etc/ssl/0.0.0.0.crt.
  • Permessi 600 sulla chiave privata.
  • Debug con relayd -vn invece di relayd -n.

Quando finalmente netstat ha mostrato *.443 LISTEN, ho capito: la difficoltà era il filtro. Se fosse stato facile, non sarebbe stato sicuro.

Pace Mentale

Ora che ho scritto questo, ho accettato il patto con OpenBSD:

  • La complessità è il prezzo della sovranità.
  • Gli errori di sintassi non sono fallimenti, sono correzioni di rotta.
  • Il sistema è stabile perché ogni componente è stato compreso, non copiato.

La Pace Mentale viene dal sapere che se il sito cade, posso rialzarlo io. Non devo aprire un ticket. Non devo aspettare un supporto tecnico.

Il Monolito non è solo un sito. È un sistema operativo per la mia presenza digitale. E relayd è il guardiano della porta.

Nota tecnica:

  • OpenBSD 7.8 richiede certificati fisici, non link simbolici per relayd
  • Percorso chiave: /etc/ssl/private/0.0.0.0.key (permessi 600)
  • Percorso cert: /etc/ssl/0.0.0.0.crt (permessi 644)
  • Debug: doas relayd -vn (verbose check)
  • Reload: doas rcctl restart relayd
  • Trigger: se relayd fallisce, controllare i permessi della chiave privata prima della sintassi
TG

Chi sono

Architetto di sistemi sovrani. Scrivo di tecnologia, pasticceria, scacchi e disciplina.

Ti è piaciuto questo articolo? Parliamone.

Scrivimi via email: tiziano@tizianogasparet.com Contattami su Signal: @tizianogasparet.06 (Signal) BIOGRAFIA

Il Monolito è un invito alla conversazione, non un monologo.