Impossibile abilitare DiscourseID su un sito con force-https disabilitato

Per contesto, ho il mio sito di test Discourse in esecuzione in un container Proxmox dietro Nginx (npmplus) su un server diverso nella stessa rete (ma non nella stessa sottorete). Niente di particolarmente speciale. Ho provato ad abilitare force-https, ma continuavo a ricevere numerosi errori di validazione CSRF, quindi l’ho semplicemente disabilitato di nuovo perché non ne valeva la pena. Indipendentemente da tutto ciò, il sito funziona correttamente su HTTPS perché Nginx e Cloudflare sono entrambi configurati correttamente per questo:

Ho appena provato ad abilitare DiscourseID sul sito, ma ho ricevuto un errore:


Esiste una soluzione alternativa che non richieda ore di lotta con npmplus per far smettere la validazione CSRF di Discourse di lamentarsi di tutto? Questo thread non è per il debug di npmplus o SSL; voglio semplicemente risolvere il problema di Discourse ID.

Il messaggio di errore “Discourse ID returned” segnala che l’URI di reindirizzamento del sito deve essere https, quindi è necessario attivare force_https o indicare altrimenti, tramite la configurazione del proxy, che le richieste arrivano tramite https.

Tranne per tutto ciò che non funziona:

3 Mi Piace

Ah, immagino non avessi mai notato nulla di tutto ciò. Come ho detto, ho provato ad abilitare force_https, ma continuavo a ricevere errori CSRF ogni volta che facevo qualcosa. Forse le normali variabili nginx non funzionano su npmplus (secondo le istruzioni che lo affermano proprio sopra), dato che questa è la configurazione che stavo usando:

A parte questo, la porta 443 sul mio CT non rispondeva, quindi si connette ancora localmente sulla 80.

Dovresti correggere la configurazione del reverse proxy e far funzionare correttamente HTTPS.

1 Mi Piace

Credo che il problema attuale sia solo una stranezza con le variabili esposte da npmplus. Avevo una configurazione funzionante prima, ma l’ho persa e al momento non sono sicuro di cosa fare. Mi sono limitato alla seguente configurazione, ma non voglio abilitare l’impostazione finché non sono al 100% sicuro che funzionerà, per evitare BAD CSRF e dover ricorrere nuovamente alla console di Rails per correggerlo.



Interessante notare che sembra rifiutare solo il traffico sulla porta 443, il che non credo sia normale, anche se il proxy è attualmente impostato sulla porta 80.

Impossibile dereferenziare questo puntatore: credo tu ti stia riferendo al contenitore Discourse?

force_https non influenza se Discourse serva sulla porta 443 (HTTPS); indica solo a Discourse di assumere che venga sempre accessibile tramite https.

1 Mi Piace