Ho visto alcuni tutorial che spiegano come farlo, ma in modi diversi, il che non mi aiuta. Esiste un modo per creare una configurazione di virtual host Apache per Discourse in modo che un dominio specifico reindirizzi al software, proprio come si fa per altri siti web e i rispettivi domini?
Ma con questa soluzione sembra che debba usare Nginx a causa dei file di configurazione, quindi la mia domanda è: posso fare la stessa cosa con Apache?
Se non ti è familiare (e non vuoi diventarlo), ti consiglio vivamente di abbandonare Apache e far girare solo Discourse sulla VPS. Se hai bisogno di eseguire altre cose, procurati una VPS per le funzionalitĂ di Apache e unâaltra per Discourse.
Quindi sono passato a Nginx e tutto funziona. Credo che SSL sia configurato correttamente, ma su Chrome ricevo il messaggio âLa tua connessione a questo sito non è completamente sicuraâ. Lâopzione Forza HTTPS è attiva.
LâSSL è configurato con il servizio nginx allâinterno del container. Se il container è esposto a Internet e vi accedete direttamente dal browser (installazione predefinita di Discourse), avrete lâSSL.
Tuttavia, se mettete un proxy inverso davanti ad esso (sia esso Apache, Nginx o un servizio di terze parti come Cloudflare), dovrete assicurarvi che la connessione tra il browser e il proxy inverso sia sicura.
Quindi, nel vostro caso, dovrete generare certificati per il proxy inverso nginx (non credo sia necessario aggiungere i template SSL di Discourse, poichÊ il container non è esposto direttamente a Internet; potete farlo, ma non è obbligatorio).
Potete consultare come farlo utilizzando Letâs Encrypt (gratuito, lo stesso utilizzato nellâinstallazione predefinita di Discourse, ma in questo caso per nginx esterno al container).
TL;DR Il nginx che funge da proxy inverso necessita di SSL. Il nginx allâinterno del container non ha bisogno di SSL (assumendo che lâaccesso avvenga dalla stessa macchina).
(in alternativa, puoi esporre altre porte come 8080:80 e 8443:443 e, invece di utilizzare un socket nel passaggio successivo, puoi reindirizzare a un upstream che punta a localhost:80 e/o localhost:443)
Devi avere i file del certificato SSL in /var/discourse/shared/standalone/ssl/. Li hai? Presumo che tu possieda giĂ il dominio a1rp.xyz e che tu abbia letto come generare i certificati SSL sul sito di Letâs Encrypt. Tieni inoltre presente che, nellâinstallazione predefinita, Discourse gestisce automaticamente il rinnovo dei certificati, ma nel tuo caso dovrai occupartene tu (ad esempio con un cronjob), altrimenti i certificati scadranno dopo 3 mesi.
SĂŹ, ho tutto ciò che hai detto di fare nella configurazione dellâapp (incluso il post che corregge alcune cose). Per quanto riguarda il :, non credo faccia differenza. Câera anche un post che diceva che non dovrebbe esserci un : lĂŹ. I file SSL li ho giĂ anchâio.
Quindi ho risolto il problema. Qualcuno ha menzionato che lâicona del sito (favicon) appariva in http, ed è per questo che si verificava lâerrore. Ho caricato qualcosâaltro e lâho eliminato; ora il sito è completamente https