Salta ai contenuti
ArenileArenile
Coste360.itCoste360.it

Reverse proxy e HTTPS

HTTPS è obbligatorio in produzione: protegge password e dati dei clienti, permette i cookie sicuri del pannello ed è richiesto dai browser per pagare dentro un iframe. Hai due strade.

Il proxy riceve il traffico HTTPS e lo inoltra ad Arenile su 127.0.0.1:8080.

Caddy ottiene e rinnova il certificato da solo:

/etc/caddy/Caddyfile
prenota.mio-lido.it {
reverse_proxy 127.0.0.1:8080
}

Poi, sempre, indica ad Arenile da quali proxy fidarsi per leggere l’IP reale del client:

.env
ARENILE_TRUSTED_PROXIES=127.0.0.1/32
# oppure la rete Docker del proxy, ad esempio 172.18.0.0/16

Senza proxy, Arenile può ottenere e rinnovare i certificati Let’s Encrypt da solo:

.env
ARENILE_TLS_AUTOCERT_DOMAINS=prenota.mio-lido.it

Le porte 80 e 443 del server devono raggiungere il container: nel compose ufficiale decommenta le righe "80:80" e "443:443". I certificati vengono salvati nella cartella dei dati.

Arenile imposta da solo gli header di sicurezza, qualunque sia il proxy:

Header Valore
Strict-Transport-Security max-age=63072000; includeSubDomains (solo su HTTPS)
Content-Security-Policy restrittiva sul pannello e sulle API; sulla pagina pubblica frame-ancestors costruito dai siti autorizzati dello stabilimento
X-Content-Type-Options nosniff
Referrer-Policy strict-origin-when-cross-origin

Non aggiungere dal proxy un X-Frame-Options o un frame-ancestors diverso: impedirebbe l’incorporamento del widget nei siti autorizzati.