Consegna diretta: fallimento in entrata di Let's Encrypt (prop.ltcmp.net.key è errato) e mancata consegna a causa di ciò?

Quando utilizzo la configurazione di ricezione email con consegna diretta come descritto qui, ottengo i seguenti errori nei log, che includono sia un fallimento con LetsEncrypt sia un test in arrivo a “nobody@discourse.domain.tld” da un account Gmail:

<22> postfix/master[1]: daemon started -- version 3.1.1, configuration /etc/postfix
<20> postfix/smtpd[97]: warning: cannot get RSA private key from file "/letsencrypt/domain.tld/prop.ltcmp.net.key": disabling TLS support
<20> postfix/smtpd[97]: warning: TLS library problem: error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen('/letsencrypt/domain.tld/prop.ltcmp.net.key','r'):
<20> postfix/smtpd[97]: warning: TLS library problem: error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:404:
<20> postfix/smtpd[97]: warning: TLS library problem: error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib:ssl_rsa.c:633:
<22> postfix/smtpd[97]: connect from mail-qk1-f180.google.com[209.85.222.180]
<22> postfix/smtpd[97]: lost connection after STARTTLS from mail-qk1-f180.google.com[209.85.222.180]
<22> postfix/cleanup[101]: 20A0CBCE22: message-id=<20191115221116.20A0CBCE22@discourse-mail-receiver.localdomain>
<22> postfix/qmgr[83]: 20A0CBCE22: from=<double-bounce@discourse-mail-receiver.localdomain>, size=900, nrcpt=1 (queue active)
<22> postfix/smtpd[97]: disconnect from mail-qk1-f180.google.com[209.85.222.180] ehlo=1 starttls=0/1 commands=1/2
<22> postfix/smtp[103]: 20A0CBCE22: to=<postmaster@discourse-mail-receiver.localdomain>, orig_to=<postmaster>, relay=none, delay=0.01, delays=0.01/0/0/0, dsn=5.4.4, status=bounced (Name service error for name=discourse-mail-receiver.localdomain type=AAAA: Malformed or unexpected name server reply)
<20> postfix/bounce[104]: warning: 20A0CBCE22: undeliverable postmaster notification discarded
<22> postfix/qmgr[83]: 20A0CBCE22: removed

La mia configurazione prevede un altro server di posta su mail.domain.tld, mentre Discourse è eseguito direttamente su domain.tld. discourse.domain.tld è anche l’hostname del server Docker che esegue sia i container Discourse che quelli mail-receiver.

Ho inoltre i seguenti record MX:

domain.tld > mail.domain.tld            priority: 10
d > discourse.domain.tld                priority: 20
domain.tld > discourse.domain.tld       priority: 30

Cosa potrebbe star andando storto qui?

Una cosa che ho notato, ovviamente, era che /letsencrypt/domain.tld/prop.ltcmp.net.key mancava dal contenuto della cartella:

discourse-mail-receiver:/# ls -tlrha letsencrypt/domain.tld
total 40
-rw-r--r--    1 root     root        3.2K Nov 10 05:10 domain.tld.key
-rw-r--r--    1 root     root         208 Nov 10 05:10 domain.tld.csr.conf
-rw-r--r--    1 root     root        1.6K Nov 10 05:10 domain.tld.csr
-rw-r--r--    1 root     root        2.2K Nov 10 05:10 domain.tld.cer
-rw-r--r--    1 root     root        3.8K Nov 10 05:10 fullchain.cer
-rw-r--r--    1 root     root        1.6K Nov 10 05:10 ca.cer
drwxr-xr-x    3 root     root        4.0K Nov 10 05:10 .
-rw-r--r--    1 root     root         799 Nov 11 15:56 domain.tld.conf
drwxr-xr-x    2 root     root        4.0K Nov 11 27 15:56 backup
drwxr-xr-x    8 root     root        4.0K Nov 16 00:49 ..

È interessante perché questo rimanda a questa domanda qui di @surety, che sembra non aver ricevuto una risposta diretta.

Il thread sembra continuare a discutere questo punto, ma c’è così tanto chiacchiericcio in quel thread ora che le cose possono diventare confuse, ed è per questo che ho creato un argomento qui (per ottenere maggiore chiarezza per gli utenti futuri con problemi simili).

Sembra che il valore dell’entry POSTCONF_smtpd_tls_key_file nel file di configurazione mail-receiver.yml, ovvero /letsencrypt/domain.tld/prop.ltcmp.net.key, debba essere sostituito con /letsencrypt/domain.tld/domain.tld.key.

Quindi la risposta alla domanda #1 di @surety è “SÌ”, è corretto sostituire il contenuto di questa entry con quello che vedi. Anche la #2 sembra corretta da lasciare come predefinita.

Credo che forse @pfaffman o @mpalmer dovrebbero ripensare allo script di creazione del container per utilizzare il file .key corretto invece di questa voce (apparentemente errata) prop.ltcmp.net.key

A questo punto sono fortunatamente in grado di andare avanti oltre il passaggio di @mpalmer:

Puoi anche provare a inviare un’e-mail a nobody@forum.example.com. Anche se Discourse non farà ancora nulla di utile con essa, l’e-mail che hai inviato dovrebbe apparire nel tuo pannello di amministrazione sotto “Email”, “Rifiutate” in pochi secondi. Se ciò accade, sei assolutamente pronto a procedere.

Poiché ora la mia e-mail di test appare nell’elenco /admin/email/rejected di Discourse! :slight_smile:

Pensavo fosse ovvio che prop.ltcmp.net fosse un segnaposto, proprio come domain.tld.

Tra il passaggio a Debian e il nuovo ricevitore di posta, potrebbero essere necessarie alcune altre modifiche. Cercherò di dare un’occhiata nei prossimi giorni, poiché i miei script di installazione potrebbero essere stati danneggiati da questi aggiornamenti.

Interessante, perché pensi che questo sia ovviamente visto solo come un segnaposto? Gli acronimi dovrebbero essere ovvi? Se è così, forse rendiamolo ancora più evidente con qualcosa di più simile a: <REPLACE_THIS_WITH_LETSENCRYPT_DOT.KEY_FILE_PATH.key>