Versione di Discourse su forum.abc.com.au: NON TROVATA

Discourse installato seguendo la guida ufficiale su GitHub
Tutto è andato bene, ma ottengo un errore 502 quando provo ad accedere al forum.

Ho provato a controllare i log di produzione di Rails, ma non ho trovato errori di produzione o log di Sidekiq.

Ho visto questo eseguendo tail:
Creazione dello scope :open. Sostituzione del metodo esistente Poll.open.
Creazione dello scope :open. Sostituzione del metodo esistente Poll.open.
Impossibile raggiungere ‘/images/welcome/discourse-edit-post-animated.gif’ per ottenerne le dimensioni.

Eseguendo discourse doctor si ottiene:

Versione di Discourse su forum.abc.com.au: NON TROVATA

Ho provato a disabilitare SSL e a ricostruire, riuscendo così ad accedere al forum.

Deve esserci un problema con SSL, che non riesco a capire. Durante l’installazione di SSL, la risoluzione dell’indirizzo IP è riuscita.

Aiutatemi, per favore.

Sembra che prima di abilitare HTTPS tu abbia collegato immagini non sicure.

@pfaffman Grazie per la risposta.

È un’installazione nuova. Non c’è modo di collegare manualmente.

Dopo aver esaminato tutti i log, ho scoperto che l’errore riguarda l’emissione del certificato Let’s Encrypt. Chiunque stia riscontrando un problema simile può trovare aiuto qui sotto.

Inizialmente ho visto questo errore nei log di Nginx:

cannot load certificate "/shared/ssl/forum.abc.com.au.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)

Poi ho provato a controllare i log SSL:

forum.abc.com.au:Verify error:CAA record for forum.abc.com.au prevents issuance

Prima di eseguire lo script di installazione di Discourse per un sottodominio, è necessario verificare se il dominio principale ha record CAA e controllare l’Autorità di Certificazione. Se non è Let’s Encrypt (nel mio caso, il record CAA del dominio principale è comodoca.com), i certificati Let’s Encrypt per Discourse non verranno emessi.

Soluzione: Devi aggiungere un record CAA per il sottodominio Discourse come indicato qui
Acme:error:caa :: CAA record for ... prevents issuance - Help - Let's Encrypt Community Support

Elimina i vecchi file del certificato e prova a ricostruire l’applicazione:

rm -rf /var/discourse/shared/standalone/ssl
rm -rf /var/discourse/shared/standalone/letsencrypt
./launcher rebuild app

Se conosci un modo per verificare questi record che non richieda software aggiuntivo, valuterei di far sì che discourse-setup lo verifichi, ma non l’ho mai visto prima.

Ottimo lavoro nel risolverlo!

È ragionevole supporre che, se possiedi un dominio e sai cos’è la CAA da averne configurato l’utilizzo, tu comprenda le implicazioni di Let’s Encrypt.

@pfaffman
eseguire caa {domain.tld} restituirà il record.
Vogliamo prima verificare se restituisce un record,
e poi, se sì, controllare se l’autorità di emissione è diversa da letsencrypt.org.

Tuttavia, questo è un caso molto raro. Non sono sicuro che sia il caso di includerlo.

@Stephen

Esatto. Se possiedo un dominio, so cosa farne.
Stavo aiutando qualcuno; questo problema potrebbe verificarsi con host che utilizzano cPanel e forniscono certificati SSL automatici tramite altri provider come Comodo. Quando creano un sito (WordPress) in cPanel, aggiungono automaticamente una serie di record.

Comunque, si tratta di un caso molto raro; è la prima volta che lo incontro.

Vediamo CAA comparire qui di tanto in tanto; la risposta predefinita che otteniamo quando segnaliamo che hanno limitato l’emissione di certificati per l’intero dominio è solitamente :man_facepalming:t2:

@Stephen

È interessante! Devo verificare, non so se possiamo bloccare l’emissione di certificati per un dominio completo.

L’emissione di certificati limitata per l’intero dominio, ovvero tutti i suoi sottodomini?

Se imposti un record CAA per @ (il dominio), questo si applica sia al dominio di primo livello che ai sottodomini. Puoi comunque aggiungere un record CAA specifico per un sottodominio come sub.yourdomain.com per un servizio come Let’s Encrypt, limitando l’ambito per cui LE può emettere certificati.

Quindi:

domain.com.    CAA   0 issue "comodoca.com"
sub.domain.com.    CAA   0  issue "letsencrypt.org"

Puoi anche specificare issuewild al posto di issue per autorizzare un’CA a emettere certificati wildcard, e iodef per associare un indirizzo email che verrà notificato in caso di violazioni delle policy.

Stesso problema qui. I comandi non hanno risolto il problema. Ho cambiato DNS e proxy di Cloudflare. Il problema persiste per me.

L’ho fatto diverse volte e non ho riscontrato questo problema. Ma sono decisamente un non-programmatore, un non-esperto, un non-tutto-ciò-che-è-correlato. Solo un utente finale felice. Ma questo è frustrante.

La mia migliore ipotesi è che tu avessi Cloudflare impostato su proxy e hai ricostruito abbastanza volte da raggiungere i limiti di frequenza di Let’s Encrypt e ora devi aspettare una settimana per ottenere un certificato.

La soluzione rapida e semplice è scegliere un nuovo sottodominio, impostare Cloudflare solo DNS e ricostruire. Se funziona, allora ho ragione sui limiti di frequenza e puoi imparare ad amare il nuovo sottodominio o aspettare una settimana finché non ti permetterà di riprovare.

Domanda onesta: la ricostruzione richiede ancora un nuovo certificato ogni volta?

Mi stavo chiedendo la stessa cosa, non sono sicuro della richiesta, ma non sembra essere emesso alcun nuovo certificato se ne viene trovato uno valido (ho appena ricostruito una sandbox)

Lo fa se non esiste un certificato valido.