Avatar, loghi del sito ed errori di certificato

Ciao!

Ho configurato server Discourse in circa 5 istanze e tutte sembrano mostrare comportamenti strani; non sono sicuro che si tratti effettivamente di un bug o se qualcun altro abbia riscontrato lo stesso problema.

Passaggi per Riprodurre

  • La configurazione del server procede senza intoppi
  • La procedura guidata funziona correttamente, tutte le immagini vengono caricate e visualizzate come previsto
  • L’utente riceve il link di iscrizione, clicca per seguire e la registrazione va a buon fine
  • (Qui le cose si complicano) L’utente accede e i loghi del sito sono tutti rotti: vengono mostrati solo i titoli testuali
  • L’utente non può caricare/assegnare un avatar personalizzato
  • Il certificato del sito segnala che il sito non è sicuro
  • Per qualche motivo, questo problema interessa SOLO il browser utilizzato per l’iscrizione e ha un tasso di fallimento molto più alto in Chrome

Risoluzione dei Problemi

  • Abbiamo suggerito agli utenti di cancellare cache e cookie del browser: il problema persiste
  • Abbiamo chiesto agli utenti di reinstallare i browser, principalmente Chrome: il problema persiste
  • Abbiamo chiesto alle persone di utilizzare un’identità alternativa in Chrome o provare un browser diverso (Safari, Firefox, ecc.): funziona!

Non abbiamo assolutamente idea del motivo per cui l’ultimo punto funzioni e perché l’identità di iscrizione originale sia compromessa. Non sarebbe sostenibile chiedere ai nostri utenti (circa 600-700) di disconnettersi dalla loro identità Chrome e riconnettersi, anche se, per qualche motivo, questa fosse effettivamente la soluzione.

Qualche idea?

Saluti,
Mark

È un’installazione standard di 30 minuti? O c’è qualcosa di personalizzato?

Hai abilitato force_https nelle impostazioni del sito per vedere se risolve il problema?

Non riesco a replicare i tuoi passaggi nella mia sandbox sull’ultimo branch, quindi sarebbe molto utile se potessi condividere il link a una delle istanze interessate.

Ciao Bahnu,

  • Installazione standard di 30 minuti
  • Nessuna personalizzazione
  • Non ho abilitato force_https, ma come ho detto, questo problema riguarda solo il browser utilizzato per la registrazione

Prova ad abilitare force_https. Sono al 99% sicuro che questo risolverà il problema per te.

Ok. Tutte le istanze di installazione ricevono il certificato da un proxy inverso Nginx che NON è la stessa macchina. force_https farà comunque la differenza?

Quindi non si tratta di un’installazione standard. Hai detto che lo era.

Se Discourse è protetto da un reverse proxy correttamente configurato, l’impostazione force_https farà sicuramente la differenza. Questa impostazione indica essenzialmente a Discourse di caricare tutte le risorse e gli asset tramite HTTPS.

D’accordo, mi scuso.

Quindi, stiamo parlando di force_https in app.yml o nel blocco server di Nginx?

Sto già inoltrando correttamente il traffico, ma non vedo la proprietà nel file yml.

Né l’uno né l’altro.

force_https è un’impostazione del sito che devi abilitare nell’area di amministrazione.

Potrebbe bloccarmi l’accesso?

A meno che il tuo reverse proxy non sia configurato in modo errato, non c’è assolutamente nulla di cui preoccuparsi qui.

Se non sei sicuro della configurazione del reverse proxy, dai un’occhiata a questa configurazione e confrontala con la tua

Infatti, a proposito. Bloccami fuori. L’attivazione di force_https ha risolto il problema delle immagini, ma ha reso impossibile l’autenticazione dai browser con una nuova sessione. La sessione esistente funziona, ma non appena ti disconnetti non puoi più rientrare.

C’è qualcosa che non va nel tuo reverse proxy. Dovrai verificare la sua configurazione per assicurarti che tutto sia impostato correttamente.

Ho appena fatto: ho già impostato tutto nel mio blocco server esattamente come suggerito dall’articolo. È probabilmente per questo che le sessioni nei profili/browsers alternativi funzionano normalmente dopo la registrazione/autenticazione iniziale.

L’unico elemento in cui la mia configurazione differisce è che non sto utilizzando templates.yml.

Ci vorrà MOLTA più indagine.

Ok. Strano. Non ho modificato nulla. Tutte le immagini funzionano perfettamente. Punto.

Tuttavia, durante l’installazione iniziale, ricevo ancora un certificato non valido solo per il browser dell’utente.

Potrebbe essere una cache del browser o un certificato configurato in modo errato. Hai ottenuto un certificato SSL di Let’s Encrypt o un altro tipo?

È LetsEncrypt tramite Certbot. Il certificato è valido. Penso sia la cache del browser.

Prova a registrarti in modalità incognito. Ricevi ancora un errore?

C’è una cosa che mi sembra sospetta. Stai usando qualche tipo di autenticazione esterna? (accesso tramite social, SSO, ecc.)

No. Nessuna autenticazione esterna. Ho provato in Incognito. Niente da fare. Stesso risultato.
Deve esserci qualcosa nel blocco del server. Lo esaminerò più tardi.

Potresti condividere il link a una di queste installazioni?

Hai basato la tua configurazione nginx su quella elencata qui?

Assicurati di inviare X-Forwarded-Proto.