Entrega directa: fallo en correo entrante de LetsEncrypt (prop.ltcmp.net.key es incorrecto) ¿y no entrega debido a esto?

Cuando utilizo la configuración de recepción de correo electrónico de entrega directa según lo indicado, termino con los siguientes errores en los registros, que incluyen tanto un fallo con LetsEncrypt como una prueba entrante a “nobody@discourse.domain.tld” desde una cuenta de 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

Mi configuración es tal que tengo otro servidor de correo en mail.domain.tld, pero Discourse se ejecuta directamente en domain.tld. discourse.domain.tld también es el nombre de host del servidor Docker que está ejecutando tanto los contenedores de Discourse como los de mail-receiver.

También tengo los siguientes registros MX:

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

¿Qué podría estar fallando aquí?

Una cosa que noté, obviamente, fue que /letsencrypt/domain.tld/prop.ltcmp.net.key faltaba en el contenido de la carpeta:

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 ..

Es interesante, ya que esto remite a esta pregunta aquí de @surety, que parece no haber recibido una respuesta directa.

El hilo allí parece continuar discutiendo este punto, pero ahora hay tanto ruido en ese hilo que las cosas pueden volverse confusas, y por eso he creado un tema aquí (para lograr mayor claridad para futuros usuarios con este tipo de problemas).

Parece que el valor de la entrada POSTCONF_smtpd_tls_key_file en la configuración de mail-receiver.yml, que es /letsencrypt/domain.tld/prop.ltcmp.net.key, debe reemplazarse por /letsencrypt/domain.tld/domain.tld.key.

Así que la respuesta a la pregunta #1 de @surety es “SÍ”, es correcto reemplazar el contenido de esta entrada con el que ves. La #2 también parece correcta si se deja como predeterminada.

Creo que quizás @pfaffman o @mpalmer deberían reestructurar el script de creación del contenedor para que tenga el archivo .key correcto en lugar de esta entrada (aparentemente incorrecta) prop.ltcmp.net.key

En este punto, afortunadamente, ya puedo avanzar más allá del paso de @mpalmer:

También puedes intentar enviar un correo electrónico a nobody@forum.example.com. Aunque Discourse aún no hará nada útil con él, el correo que enviaste debería aparecer en tu panel de administración en “Correos”, “Rechazados” en cuestión de segundos. Si eso ocurre, definitivamente estás listo para continuar.

¡Ya que ahora mi correo de prueba aparece en la lista /admin/email/rejected de Discourse! :slight_smile:

Pensé que era obvio que prop.ltcmp.net era un marcador de posición, al igual que domain.tld.

Entre la migración a Debian y el nuevo receptor de correo, podría ser necesario realizar algunos otros cambios. Intentaré echar un vistazo en los próximos días, ya que mis scripts de instalación podrían haberse roto con estas actualizaciones.

Interesante, ¿por qué crees que esto se ve obviamente como un marcador de posición? ¿Deberían los acrónimos ser evidentes por sí mismos? Si es así, entonces quizás hagámoslo aún más evidente con algo más como: <REPLACE_THIS_WITH_LETSENCRYPT_DOT.KEY_FILE_PATH.key>