Sito Discourse non caricato dopo l'installazione senza abilitare Let's Encrypt

So che conosco abbastanza da essere pericoloso quando mi siedo davanti a una sessione SSH aperta. L’altro giorno ho completato l’installazione senza problemi e ha funzionato.

Oggi, tuttavia, ho dovuto ricostruire (ero su un server di sviluppo, non di produzione) e dopo aver seguito gli stessi passaggi, non appare nulla dopo aver eseguito ./discourse-setup e aver visitato il sito web al termine dell’installazione.

Ho anche eseguito ./launcher start app e ancora non succede nulla.

Quali sono le cose tipiche che dovrei fare per risolvere i problemi dell’installazione?

Nessun messaggio, nessun errore di alcun tipo dopo ./discourse-setup o ./launcher start app?

Raccontaci in che modo gli ambienti sono diversi.

Stai utilizzando un reverse proxy? CloudFlare?

Dove stai ospitando l’installazione di produzione?

No, l’installazione sembra essere andata a buon fine. Quando eseguo docker info, vedo che anche il container è in esecuzione.

Sto utilizzando Amazon Linux 2 su AWS e questo ha funzionato l’altro giorno sullo stesso sistema operativo. CloudFlare è utilizzato solo per il DNS di questo dominio.

Ecco l’esatto ordine delle operazioni che ho eseguito. Git, docker e ncat sono stati installati tramite amazon-linux-extras come richiesto durante l’installazione (ma questo non dovrebbe essere un problema, dato che avevo un forum di sviluppo funzionante l’altro giorno).

  1. Installa git
  2. Installa e avvia docker
  3. Installa ncat
  4. Installa Discourse
  5. Installa nginx1.12

Perché hai fatto questo?

Domanda lecita. :joy: L’ho fatto perché dopo il passaggio 4 non funzionava più… haha. Dovrei disinstallare?

Sì. Disinstalla.

È probabilmente un problema DNS.

Cosa restituisce curl localhost?

Cosa mostra tail /var/discourse/shared/logs/var-log/nginx/access.log?

Discourse include un server web all’interno del container.

curl: (7) Impossibile connettersi a localhost sulla porta 80: Connessione rifiutata

tail: impossibile aprire '/var/discourse/shared/logs/var-log/nginx/access.log' per la lettura: File o directory non esistente

Ho eseguito l’installazione normale, ma ho confermato che la cartella shared non esiste nemmeno.

Grazie per il tuo aiuto, comunque! Come ho detto, so abbastanza da essere pericoloso… e non sempre nel senso buono. :smiling_face_with_sunglasses:

Scusa.

tail /var/discourse/shared/standalone/logs/var-log/nginx/access.log

Oppure, se è ancora sbagliato,

find /var/discourse/shared -name access.log

per vedere dove si trova il file di log.

L’ho trovato qui:

/var/discourse/shared/standalone/log/var-log/nginx/

Non c’era un access.log, ma c’era un error.log.

La stessa riga era presente ripetutamente (il dominio reale è stato sostituito con example.com qui):

2020/04/08 19:46:34 [emerg] 2112#2112: impossibile caricare il certificato "/shared/ssl/example.com.cer": PEM_read_bio_X509_AUX() fallito (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

Non ho seguito il processo di certificazione con Let’s Encrypt perché ho già un certificato per questo dominio. Devo comunque procedere anche con Let’s Encrypt?

Hai bisogno di un certificato.

Puoi cercare e trovare le istruzioni per installare il tuo certificato, che descrivono il processo come estremamente complicato, oppure puoi ottenerne uno gratuitamente e senza problemi consentendo a Let’s Encrypt di procurartelo.

Beh, guardate un po’. Ha funzionato.

Grazie a @pfaffman e a tutti gli altri che hanno risposto. :+1:

In realtà, mi ripenso. Chrome ha caricato la finestra in una modalità che mostrava l’ultimo caricamento riuscito, ma un aggiornamento in incognito rivela che non funziona ancora. Un totale fallimento da parte mia. :man_facepalming:

Esiste un link su come configurare il certificato Let’s Encrypt? Devo rivedere cosa ho fatto (o non ho fatto).

Esegui semplicemente discourse-setup. Quando ti chiede informazioni su Let’s Encrypt, fornisci un indirizzo email qualsiasi o il tuo, se desideri ricevere una notifica qualora ritengano necessario rinnovare il certificato.

Ok, è quello che ho fatto… Pensavo che tutto fosse basato sulla guida all’installazione, ma continuo a vedere pagine vuote.

Sembra che Discourse stia cercando il certificato nella directory /shared/ssl/, ma la posizione effettiva del mio certificato è /shared/standalone/ssl/

La mia configurazione app.yml è impostata su:

   ## Il contenitore Docker è senza stato; tutti i dati sono memorizzati in /shared
volumes:
  • volume:
    host: /var/discourse/shared/standalone
    guest: /shared
  • volume:
    host: /var/discourse/shared/standalone/log/var-log
    guest: /var/log

Puoi provare

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

La riga rm è ricordata a memoria. Se quelle cartelle non esistono, individua cosa avrei dovuto digitare.

Quindi, sembra che abbia raggiunto il limite di 10 certificati a settimana con Let’s Encrypt. Immagino che spieghi in parte perché non riesco ad andare oltre questo passaggio.

Ecco cosa ho trovato da qualcuno che ha riscontrato lo stesso problema dopo diversi rebuild: Trouble with SSL after lots of rebuilds - #14 by pfaffman

Quindi, suppongo che al momento non abbia altra opzione se non installare il mio certificato che già possiedo?