Tengo un certificado Comodo PositiveSSL emitido para mail.btcontract.com
y configuré Postfix y Dovecot para que funcionen de la siguiente manera:
Postfix main.cf:
smtpd_tls_cert_file = /etc/ssl/mail/mail_btcontract_com.crt
smtpd_tls_key_file = /etc/ssl/mail/mail_btcontract_com.key
smtpd_tls_CAfile = /etc/ssl/mail/AddTrustExternalCARoot.crt
smtp_tls_CAfile = /etc/ssl/mail/AddTrustExternalCARoot.crt
dovecot.conf:
ssl_cert =< /etc/ssl/mail/mail_btcontract_com.pem
ssl_key =< /etc/ssl/mail/mail_btcontract_com.key
He generado pem
de crt
siguiendo este tutorial: enlace
El problema es que cuando intento conectarme a mi servidor desde un cliente de correo de Thunderbird, veo los siguientes errores:
Al mismo tiempo, en /var/log/mail.log
veo esto:
Nov 16 12:15:57 BTContractTest postfix/smtpd[22870]: connect from 51-28-134-95.pool.ukrtel.net[95.134.28.51]
Nov 16 12:15:58 BTContractTest postfix/smtpd[22870]: Anonymous TLS connection established from 51-28-134-95.pool.ukrtel.net[95.134.28.51]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Nov 16 12:15:58 BTContractTest postfix/smtpd[22870]: warning: TLS library problem: 22870:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1258:SSL alert number 48:
Nov 16 12:15:58 BTContractTest postfix/smtpd[22870]: lost connection after STARTTLS from 51-28-134-95.pool.ukrtel.net[95.134.28.51]
Cuando intento openssl s_client -connect mail.btcontract.com:143 -starttls imap
, primero veo esto:
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN = mail.btcontract.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN = mail.btcontract.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN = mail.btcontract.com
verify error:num=21:unable to verify the first certificate
verify return:1
¿Qué está pasando y qué debo hacer para solucionar todo esto?
Además, estos son todos los archivos que tengo de la autoridad de certificación:
No uso certificados intermedios en ningún lugar, ¿podría ser la fuente del problema?
ACTUALIZACIÓN
Siguiendo el consejo de Thomas Pornin, hice lo siguiente:
cat mail_btcontract_com.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt > full.crt
y luego en Postfix main.cf:
smtpd_tls_cert_file = /etc/ssl/mail/full.crt
smtpd_tls_key_file = /etc/ssl/mail/mail_btcontract_com.key
smtpd_tls_CAfile = /etc/ssl/mail/AddTrustExternalCARoot.crt
smtp_tls_CAfile = /etc/ssl/mail/AddTrustExternalCARoot.crt
dovecot.conf:
ssl_cert =< /etc/ssl/mail/full.crt
Y ahora obtengo un error diferente:
Nov 16 13:28:09 BTContractTest postfix/smtpd[23921]: warning: cannot get RSA private key from file /etc/ssl/mail/mail_btcontract_com.key: disabling TLS support
Nov 16 13:28:09 BTContractTest postfix/smtpd[23921]: warning: TLS library problem: 23921:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:330:
He intentado cambiar lugares de certificados concatenados y también he intentado incluir raíz ca de esta manera:
cat AddTrustExternalCARoot.crt mail_btcontract_com.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt > full.crt
Pero no hay suerte hasta ahora.