febrero 26, 2018

postfix certificate key values mismatch

Recientemente durante la instalación de un nuevo certificado en un servidor postfix me sucedió el siguiente error:
$ telnet x.x.x.x 25
Escape character is '^]'.
220 x.x.x ESMTP Postfix
> EHLO test
250-x.x.x
250-PIPELINING
250-SIZE 34044240
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
> STARTTLS
454 4.7.0 TLS not available due to local problem
Connection closed by foreign host.
En el log de postfix podemos ver la oscura razón:
postfix/smtpd[6376]: warning: cannot get RSA private key from file "/etc/postfix/smtpd.pem": disabling TLS support
postfix/smtpd[6376]: warning: TLS library problem: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:340:
Tras varias vueltas resulta que efectivamente los certificados que está mirando son distintos, el problema se encontraba en que habia puesto el certificado de las CA intermedias antes que el certificado del propio servidor. Aquí hay una guía muy completa sobre la instalación en postfix, reproduzco algunas partes:
openssl x509 -noout -modulus -in cert.pem | openssl md5
(stdin)= d467b8860d03aec22ad97eed3d77cac2
openssl rsa -noout -modulus -in key.pem | openssl md5
(stdin)= d467b8860d03aec22ad97eed3d77cac2
Ambos modulos deberian coincidir, si no coinciden o nos hemos liados con los archivos o como yo hemos pegado el certificado incorrecto primero :)

comentarios: