Discourse: mancata rinnovazione del certificato

Continuando la conversazione da qui:

La prima volta in assoluto che ho ricevuto un promemoria da Redsift che i miei certificati scadranno tra una settimana. Di solito discourse rinnova i certificati con largo anticipo. Questa volta no, prima di iniziare a fare una ricostruzione (che dovrebbe risolvere il problema), @Falco c’è qualcosa che vuoi che controlli e che ti riporti qui per aiutare a capire la causa per cui i certificati non sono stati rinnovati?
La radice del certificato è ISRGX1 e qui ci sono le informazioni sul certificato in scadenza:

Nome comune (CN) E6
Organizzazione (O) Let’s Encrypt
Unità organizzativa (OU)
Emissione Mercoledì 16 luglio 2025 alle 19:36:45
Scadenza Martedì 14 ottobre 2025 alle 19:36:44

La build corrente è 3.6.0.beta1-dev (7ee52c8f85)

C’è stato un periodo in cui l’endpoint di cui Let’s Encrypt aveva bisogno era stato reindirizzato. È stato risolto se ricostruisci.

5 Mi Piace

Quanto tempo dopo l’aggiornamento devo rinnovare il certificato?

Se la memoria non mi inganna, i certificati sono validi per 3 mesi e ora tenteranno di rinnovarsi automaticamente prima di allora.

1 Mi Piace

Sì, so come dovrebbe funzionare.

Ma è passato più di un giorno da quando ho aggiornato il software del forum e il certificato non sembra essere stato ancora aggiornato. Ha 5 giorni prima della scadenza, quindi deve essere rinnovato presto.

Sono sul ramo stabile di Discourse, se questo fa la differenza. È possibile che la correzione dell’endpoint non sia stata retroportata?

Per me il certificato si è aggiornato immediatamente dopo la ricompilazione

Hai ricostruito tramite il web o tramite la riga di comando?

1 Mi Piace

Sì, la spiegazione era qui:

1 Mi Piace

Il mio forum ha finalmente aggiornato il suo certificato dopo che ho eseguito una ricostruzione dalla riga di comando.

3 Mi Piace

Abbiamo avuto la stessa esperienza di SSL non rinnovato.

Sarebbe fantastico se qualcuno potesse ricontrollare che web.ssl.template si comporti correttamente su discourse-docker, mi è sembrato che la porta 80 non servisse effettivamente URL /.well-known/ utilizzati da Let’s Encrypt, tutti gli URL venivano inoltrati a SSL inclusi file di test che ho posizionato manualmente in /var/www/discourse/public/.well-known/ . Ho dovuto modificare /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf direttamente all’interno del container dell’app.

Forse è iniziato dopo il commit ae4887a di discourse-docker?

1 Mi Piace

C’è stato un altro errore con il percorso ben noto nella memoria recente.

Quando è stata l’ultima volta che hai fatto una ricostruzione?

1 Mi Piace

Anche qui. Non ho ricevuto un avviso sulla scadenza del certificato. Accedere al server e avviare una ricostruzione /var/discourse % ./launcher rebuild ha risolto il problema.

2 Mi Piace

Nella mia sperimentazione su un’installazione vanilla di nginx (1.18.0 ma penso sia lo stesso per 1.26.3), una riga di configurazione nginx return 301 https://thehostname$request_uri; al di fuori di una location sovrascrive completamente qualsiasi blocco location precedente, anziché fungere da catch-all. Credo che /.well-known/ semplicemente non venga servito sulla porta 80 a meno che il reindirizzamento 301 non sia specificamente per un’altra location come / alla fine del blocco server. Potrebbe essere lo stesso problema di questo post di stackoverflow?

Sono contento che rebuild funzioni, ma poiché il certificato si era già rinnovato per me, non ho potuto confermare se un rebuild avrebbe permesso ai server di validazione Let’s Encrypt di raggiungerlo se un certificato fosse scaduto. Forse un rebuild avvia il rinnovo del certificato prima che quella riga del template sia in atto o simile, piuttosto che correggere i template, ma non sono in grado di confermare se è per questo che rebuild ottiene il rinnovo.

Se pensi che questo sia un Discourse, allora forse dovresti rispondere sul commit di GitHub o aprire un nuovo report.

1 Mi Piace