(SSL: errore:02001002:libreria di sistema:fopen:File o directory non esistente:fopen('/var/dis (…)
Sto seguendo la guida, ma non riesco a trovare nulla riguardo a questo errore
Ciao @slivo
Vediamo l’output di questo:
cd /var/discourse/shared/standalone/ssl
ls -l
Ci sono indizi?
cd ssl: File o directory non esistente
Ciao @slivo,
Questo indica che la configurazione di Let’s Encrypt non ha generato i certificati quando hai ricostruito l’ultima volta il tuo contenitore.
Certo, sono sicuro che lo sapessi già!
Ho avuto un’installazione fallita qualcosa del genere questa settimana. Forse prova a eseguire
./launcher rebuild app
L’ho ricostruito di nuovo. L’ho configurato seguendo le linee guida. SSL certificato impostato (/etc/nginx/sites-enabled/discourse.conf), ma ho un errore:
SSL: errore:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE
Non riesco ad avviare nginx per nulla.
nginx.service: Processo di controllo terminato, codice=exited status=1
nginx.service: Terminato con esito 'exit-code'.
Processo: 3840 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Processo: 25108 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=1/FAILURE)
// Impossibile avviare un server web ad alte prestazioni e un server proxy inverso.
Ciao @slivo,
Grazie per l’aggiornamento sulla configurazione.
Stai configurando Discourse con la build Docker standard senza un proxy inverso esterno al container?
Sì, e sto anche seguendo questa guida Run other websites on the same machine as Discourse
Ciao @slivo,
Nel link sopra, viene descritta una configurazione per eseguire Discourse in un contenitore Docker, esponendo l’applicazione tramite una socket UNIX a un reverse proxy.
In questo caso, NON dovresti abilitare SSL nel file yml del contenitore; invece, DOVRESTI configurare SSL con Let’s Encrypt utilizzando certbot all’esterno del contenitore, direttamente sul reverse proxy.
L’architettura generale ad alto livello è la seguente:
UTENTI WEB <-- HTTPS --> REVERSE PROXY <-- HTTP --> CONTENITORE DOCKER
Per favore, pubblica il tuo file yml oscurando con xxxx le password e gli indirizzi email; così potremo vedere cosa stai utilizzando.
Grazie.
Ma ora non capisco. Allora ho creato un nuovo certificato usando certbot. E ce l’ho qui così:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Il tuo file di chiave è stato salvato in:
/etc/letsencrypt/live/myadress.com/privkey.pem
Devo cambiare l’indirizzo in questo file o in /etc/nginx/sites-enabled/discourse.conf, oppure sto facendo tutto completamente sbagliato?
Ciao @slivo,
Quando configuri un reverse proxy davanti a un’altra applicazione con un’istanza di nginx: devi essere molto specifico riguardo alla posizione dei file di configurazione, all’interno o all’esterno del container?
Non sono sicuro di aver capito appieno. Voglio semplicemente avere Discourse dietro nginx. Non ho un’altra applicazione sul server, ma vorrei configurarlo per maggiore protezione dall’esterno.
Ciao @slivo,
Capisco la tua frustrazione. Lascia che ti spieghi gentilmente.
In uno dei tuoi messaggi precedenti hai scritto:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Il tuo file chiave è stato salvato in:
/etc/letsencrypt/live/myadress.com/privkey.pem
Non hai specificato se ti trovi all’interno del contenitore Docker o all’esterno.
Come sai, nginx (nel tuo caso) è in esecuzione sia direttamente sull’host che all’interno dell’app (il contenitore Docker).
Quando scrivi:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Il tuo file chiave è stato salvato in:
/etc/letsencrypt/live/myadress.com/privkey.pem
Come possiamo noi, che siamo esterni, sapere esattamente a cosa ti riferisci se non fornisci tutte le informazioni? Quella configurazione si trova all’interno o all’esterno del contenitore? Possiamo “indovinare” e “presumere” che tu ti stia riferendo all’esterno del contenitore, ma poiché non fornisci questi dettagli, non possiamo esserne certi. La mia esperienza è che la strada più breve per risolvere un problema è non dare mai nulla per scontato e prestare molta attenzione ai dettagli.
Inoltre, non hai condiviso il tuo file yml. Non hai nemmeno condiviso i file di configurazione di nginx esterni al contenitore. Di conseguenza, non possiamo “vedere” cosa stai effettivamente facendo nella tua configurazione.
Spero ti sia utile (HTH).