File .cer SSL di lunghezza zero

Ciao,

Sto cercando di installare Discourse dalla pagina ufficiale di GitHub, su Ubuntu 22.04 Server LTS, dalla più recente AMI di AWS. La rete è configurata, con FQDN collegati all’host e all’indirizzo IP elastico.

Tutto viene distribuito correttamente e posso connettermi all’istanza Nginx sulla porta 80. Tuttavia, non riesco a connettermi sulla porta 443 e l’errore ripetuto nel file error.log di Nginx è il seguente:

> 2023/10/09 08:41:12 [emerg] 9342#9342: cannot load certificate "/shared/ssl/discourse.xxxx.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

Ulteriori indagini mostrano che il file .cer ha una dimensione di zero byte, situato in

./shared/standalone/ssl/discourse.XXXX.com.cer

Contenitore del file di log: app:$/var/log/nginx

Qualcuno ha già riscontrato questo problema? Non sembra essere correlato ai permessi, poiché tutto viene eseguito con credenziali sudo.

Sono veramente perplesso su questo.

MODIFICA: Ho provato a eliminare le cartelle /shared/ssl e letsencrypt, e ho provato sia una ricompilazione che una reinstallazione, entrambe con lo stesso risultato.

Hai eseguito discourse-setup? Tenta di connettersi a se stesso per verificare che il DNS punti al server e che le porte siano aperte, ma è un test rudimentale.

Se esegui una ricostruzione più di qualche volta senza che DNS e porte siano configurati correttamente, raggiungerai i limiti di frequenza di Let’s Encrypt. Se è così, e sospetto che lo sia, dovrai aspettare una settimana o usare un sottodominio diverso (o seguire alcune complicate istruzioni per richiedere un certificato per il sottodominio desiderato e un altro).

Penso che se esegui docker logs app potresti vedere dove acme non riesce a ottenere un certificato.

Ciao Jason,

Ho riscontrato lo stesso problema e mi ci sono voluti giorni e molte ore per capire cosa fosse rotto e come risolverlo. Spero quindi che queste informazioni ti siano d’aiuto e ad altri che incontrano lo stesso problema.

Ho ricevuto questo errore durante l’esecuzione di ./discourse-setup:

** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error

In molti tentativi di risolvere questo errore, ho provato quanto segue:
Ho eseguito ./discourse-doctor senza successo.
Ho eseguito ./launcher rebuild app senza successo.
Ho provato a risolvere i problemi dall’interno del container usando: docker exec -it app /bin/bash
l’immagine del container ha strumenti limitati per la risoluzione dei problemi, quindi ho solo letto i log usando questo comando:
less /var/log/nginx/error.log
È stato qui che ho visto molti messaggi contenenti: [emerg] 2832#2832: cannot load certificate
Per qualche motivo non sono riuscito a trovare la causa principale, ma quando sono uscito dal container e ho digitato:
./launcher logs app dall’host -
Sono stato in grado di vedere più dati e improvvisamente ho trovato questo errore:
“Error creating new order :: too many certificates (5) already issued for this exact set of domains in the last 168 hours , retry after 2024-08-10T12:58:12Z:”
Ho cercato su Google soluzioni alternative per questo problema, ma poi ho deciso di aspettare semplicemente la durata specificata.
Dopo che il tempo di attesa è trascorso, ho riprovato: ./launcher rebuild app
Questa volta ha funzionato e i certificati SSL ( *.cer ) sono stati creati con successo e il mio sito era attivo.

La morale della favola è che se ottieni un certificato *.cer vuoto, devi controllare i log del container usando questo comando dall’host:
root@host:/var/discourse# ./launcher logs app
Scorri i log e cerca “too many certificates”
Se l’avessi saputo, avrei potuto risparmiare giorni di ricerca :frowning:

Presupposti fatti nella mia risposta:

  • Hai confermato che il tuo host è configurato correttamente con il tuo provider DNS.
  • Hai confermato le impostazioni dell’email di registrazione e SMTP.
  • Hai confermato che /var/discourse/containers/app.yml è stato popolato correttamente.
1 Mi Piace