Si verifica un errore durante la compilazione di Discourse tramite HTTP

  1. Configurazione del dominio completata
  2. Istanza AWS EC2 creata
  3. Certificato emesso utilizzando ACM
  4. Configurata la porta 443 e collegato il certificato tramite ALB
  5. ALB instrada il traffico del dominio all’istanza EC2 sulla porta 80

Prima di creare Discourse, ho modificato il file app.yml per configurare le connessioni HTTP:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Uncomment the next line to enable the IPv6 listener
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
  - "80:80"   # http
 #- "443:443" # https

Dopo aver apportato le modifiche, ho creato Discourse e controllato la configurazione, ma nginx continua a richiedere una chiave SSL con il seguente errore:

[emerg] 7416#7416: cannot load certificate "/shared/ssl/discourse.xxxxxxx.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0480006C:PEM routines::no start line:Expecting: TRUSTED CERTIFICATE)

C’è un modo per impedire a nginx di tentare di caricare la chiave o per far funzionare correttamente nginx su HTTP?

L’errore si verifica perché Nginx sta ancora cercando un certificato SSL, ma il tuo ALB sta gestendo l’SSL. Ecco come risolvere:\n\n1. Controlla il tuo app.yml: Sembra che tu abbia già disabilitato i modelli SSL, quindi puoi saltare questo passaggio.\n\n2. Ricostruisci Discourse: Esegui ./launcher rebuild app per applicare le modifiche.\n\n3. Controlla le impostazioni di Nginx: All’interno del container, controlla la configurazione di Nginx e assicurati che non ci siano righe SSL (ssl_certificate, ssl_certificate_key). Se ne trovi, rimuovile e riavvia Nginx con sv restart nginx.\n\n4. Verifica la configurazione del tuo ALB: Assicurati che il tuo ALB termini l’SSL sulla porta 443 e inoltri HTTP (porta 80) alla tua EC2.\n\nQuesto dovrebbe impedire a Nginx di cercare il certificato SSL e tutto dovrebbe funzionare correttamente su HTTP!

Grazie. Ho risolto il problema basandomi sui contenuti correlati e su altri feedback.