Impossibile accedere dopo il ripristino di un backup di Discourse su un nuovo server

Ciao,

Ho ripristinato un backup di Discourse su una nuova VM.
Il ripristino sembra funzionare correttamente. Vedo la GUI di avvio corretta.

Se provo ad accedere, ricevo un errore sconosciuto:

Processing by UsersController#create as */*
  Parameters: {"name"=>"Istvan XXXXXXX", "email"=>"istvan.XXXXXXXX@mailbox.org", "password"=>"[FILTERED]", "username"
=>"Istvan", "password_confirmation"=>"[FILTERED]", "challenge"=>"6662a14f4549a786ed0f37XXXXXX", "timezone"=>"Eur
ope/Berlin"}
Filter chain halted as :respond_to_suspicious_request rendered or redirected
Completed 200 OK in 3ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 1007)
Started POST "/login" for 172.17.0.1 at 2021-10-13 13:37:31 +0000
Processing by StaticController#enter as HTML
  Parameters: {"username"=>"Istvan", "password"=>"[FILTERED]", "redirect"=>"/u/account-created"}
Redirected to http://discourse.XXXXXXXXX/u/account-created
Completed 302 Found in 2ms (ActiveRecord: 0.0ms | Allocations: 512)
Started GET "/u/account-created" for 172.17.0.1 at 2021-10-13 13:37:31 +0000
Processing by UsersController#account_created as HTML
  Rendered default/empty.html.erb within layouts/application (Duration: 0.1ms | Allocations: 11)
  Rendered layout layouts/application.html.erb (Duration: 60.6ms | Allocations: 36879)
Completed 200 OK in 81ms (Views: 62.1ms | ActiveRecord: 0.0ms | Allocations: 39906)
Started GET "/session/csrf" for 172.17.0.1 at 2021-10-13 13:37:48 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 4ms (Views: 2.0ms | Allocations: 602)
Started POST "/session" for 172.17.0.1 at 2021-10-13 13:37:48 +0000
Processing by SessionController#create as */*
  Parameters: {"login"=>"Istvan", "password"=>"[FILTERED]", "second_factor_method"=>"1", "timezone"=>"Europe/Berlin"
}
Can't verify CSRF token authenticity.
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Filter chain halted as :verify_authenticity_token rendered or redirected
Completed 403 Forbidden in 5ms (Views: 0.7ms | Allocations: 897)

Hai qualche idea su come risolvere questo problema?

Cordiali saluti,

I.

prova a reimpostare la tua password

L’ho provato, ma non funziona…

Penso che i messaggi e-mail siano stati disattivati nella vecchia installazione (ho recuperato il relativo backup).

Io.

Prova a verificare se force_https è abilitato utilizzando la console

SiteSetting.force_https

Se è false, impostalo su true

SiteSetting.force_https = true

Intendi all’interno del contenitore Docker o nella bash della VM?

All’interno di Docker. Esegui questo nella tua VM

cd /var/discourse/
./launcher enter app
rails c

Grazie, era già “true”:

image

Forse va impostato su false (non ho un certificato) OPPURE dobbiamo usare il dominio corretto. (non è ancora “CNAMEd”)

HTTPS non è attivo nel file YAML.

Perché no? Let’s Encrypt te ne fornisce uno gratuitamente.

Se stai cercando di utilizzare un indirizzo IP senza un nome host, questo è il tuo problema. Devi usare un nome host.

Se non stai utilizzando HTTPS, allora dovrebbe essere impostato su false, effettivamente.

Il dominio del sistema “productive” è “https://deinbalkonnetz.de” (ospitato su @discourse.). Abbiamo spostato questo sistema su una VM interna che mantiene ancora il dominio “discourse.itas-karlsruhe.de”. Questo dominio (senza supporto HTTPS) è ancora utilizzato nell’app.yml.

Qual è l’ordine corretto per spostare Discourse?

#1 inoltrare il dominio productive alla VM?
#2 modificare app.yml con il dominio finale E attivare contemporaneamente Let’s Encrypt?

Per favore confermate!

Grazie.

I.

Se stai lasciando l’hosting di discourse.org, dovresti prima annullare l’abbonamento in modo che i file caricati siano inclusi nel tuo backup. Altrimenti, il tuo backup punterà semplicemente ai file caricati sul loro S3/CDN.

Consiglio di eseguire i test su un server con un indirizzo IP pubblico, o almeno con un certificato HTTPS valido (che è più difficile da configurare su un indirizzo IP privato).

Quando sarai pronto per il trasferimento, dovrai modificare il DNS del tuo server e ricostruire per ottenere il certificato Let’s Encrypt, quindi rimarrai in una situazione di attesa per un po’ mentre il DNS si propaga.

Ok. Grazie mille.

Se stai lasciando l’hosting di discourse.org, dovresti prima annullare l’abbonamento in modo che i file caricati siano inclusi nel backup. Altrimenti, il backup punterà semplicemente ai file caricati sul loro S3/CDN.

Ho richiesto un nuovo backup…

Ti consiglio di eseguire i test su un server con un indirizzo IP pubblico, o almeno con un certificato HTTPS valido (che è più difficile da configurare su un indirizzo IP privato).

Disattiverò HTTPS su “rail c” solo per poter accedere. Dopo il login, controllerò se l’addon di Let’s Encrypt è attivo (o se deve essere configurato tramite app.yml)? Se è attivo, attiverò HTTPS per il dominio temporaneo. Se tutto funziona, reindirizzeremo il dominio finale alla VM e ricostruiremo l’app con quel dominio.

Penso che sia una roadmap adeguata… giusto?

Ciao,

dopo aver disattivato HTTPS impostando SiteSetting.force_https = false, il sito è stato raggiungibile e sono riuscito ad accedere come amministratore del sito.

Ho configurato Let’s Encrypt seguendo i passaggi descritti:
(Set up HTTPS support with Let's Encrypt)

Dopo aver ricostruito il sito, nulla ha funzionato: nessun sito era accessibile dal browser…

C’è qualche modo per verificare cosa è andato storto?

Cordiali saluti,

I.