Errore CSFR durante il login dietro HA Proxy

Ciao a tutti, spero che questa sia la sezione giusta per chiedere aiuto su questo argomento.
Recentemente ho cambiato il reverse proxy che ho davanti al server Discourse.
Ho un server con diverse installazioni di Discourse e un reverse proxy davanti che indirizza i domini al server web corretto.

Ho utilizzato HA Proxy in entrambe le configurazioni, ma la differenza è la piattaforma: prima era installato su pfSense, ora su OPNsense.

Il reverse proxy funziona perfettamente, ma quando provo a effettuare l’accesso ricevo un errore CSRF e non riesco a fare nulla.

Non ho apportato modifiche alla configurazione di Discourse e la configurazione di HA Proxy è stata copiata, quindi dovrebbe essere tutto a posto.
Ho attivato X-Forwarded-For e SSL, ma sembra che Discourse non mantenga lo stesso IP del client, vedendo solo quello del proxy.

Questo è il post su Reddit dove ho chiesto supporto anche lì: https://www.reddit.com/r/OPNsenseFirewall/comments/l4ltxb/migration_from_pfsense_to_opnsense_ha_proxy/?utm_source=share&utm_medium=web2x&context=3

Non so se risolverà il problema CSRF (che penso sia legato a problemi con i certificati HTTPS, ma non ne sono sicuro), ma è stato necessario configurare il forwarding per avviare il tuo container, indicando a nginx quali indirizzi fidarsi. Puoi cercare qui “X-forwarded-for” per trovare esempi su come risolvere il problema.

Grazie per la tua risposta.
Ho cercato nel forum ma non riesco a trovare informazioni aggiornate.

Ci sono diversi vecchi argomenti che menzionano Real_ip da inserire in nginx all’interno del container, ma non ho idea di come farlo.

Consiglieresti una guida specifica?

Non vedo una guida specifica, ma cercherò di crearne una a breve. Ecco questa Inconsistent / missing registration & last IP - #13 by pfaffman che, secondo me, dovrebbe darti ciò di cui hai bisogno per la parte real-ip.

È necessario inviare anche un’intestazione X-Forwarded-Proto.

GRAZIE! In realtà ci sono andato in tondo per 3 giorni e questo ha risolto il problema!

Ho aggiunto anche l’header Proto e ha funzionato!

Per completezza, esistono molte configurazioni di esempio per server proxy inversi davanti all’applicazione Discourse, incluso questo, e quasi tutti trattano “X-Forwarded-Proto”: