Yesterday I had my SSL certificate re-issued. I now have two certificates for the same domain. One has an RSA signature and the new one I received yesterday uses ECDSA. I enabled the ECDSA certificate in Dovecot and Apache and those services are working great.

In Postfix I have enabled two certificates (RSA and ECDSA). To enable the ECDSA cert I added the following to my main.cf:


<https://forums.freebsd.org/viewtopic.php?f=43&t=46394#>
   |smtpd_tls_eccert_file =
   /usr/local/openssl/certs/mail.domain.com.chained.postfix.ecdsa.crt
   smtpd_tls_eckey_file =
   /usr/local/openssl/certs/mail.domain.com.ecdsa.key
   |



When I received the ECDSA cert from Comodo I had the following files:

 * AddTrustExternalCARoot.crt
 * COMODOECCAddTrustCA.crt
 * COMODOECCDomainValidationSecureServerCA.crt
 * mail.domain.com.crt


To create the chained file for use in Postfix I ran:
|cat mail.domain.com.crt COMODOECCDomainValidationSecureServerCA.crt COMODOECCAddTrustCA.crt > mail.domain.com.chained.postfix.ecdsa.crt|

The problem is, when I restart postfix and test with:
|openssl s_client -connect mail.domain.com:25 -crlf -starttls smtp -CAfile /usr/local/openssl/certs/AddTrustExternalCARoot.crt|

it says:


<https://forums.freebsd.org/viewtopic.php?f=43&t=46394#>
   |CONNECTED(00000003)
   depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN =
   mail.domain.com
   verify error:num=20:unable to get local issuer certificate
   verify return:1
   depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN =
   mail.domain.com
   verify error:num=27:certificate not trusted
   verify return:1
   depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN =
   mail.domain.com
   verify error:num=21:unable to verify the first certificate
   verify return:1

   Certificate chain
     0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=mail.domain.com
       i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA
   Limited/CN=COMODO RSA Domain Validation Secure Server CA
     1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA
   Limited/CN=COMODO ECC Domain Validation Secure Server CA
       i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA
   Limited/CN=COMODO ECC Certification Authority
     2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA
   Limited/CN=COMODO ECC Certification Authority
       i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP
   Network/CN=AddTrust External CA Root

   ....

       Verify return code: 21 (unable to verify the first certificate)
   |



If I comment out:


<https://forums.freebsd.org/viewtopic.php?f=43&t=46394#>
   |#smtpd_tls_eccert_file =
   /usr/local/openssl/certs/mail.domain.com.chained.postfix.ecdsa.crt
   #smtpd_tls_eckey_file =
   /usr/local/openssl/certs/mail.domain.com.ecdsa.key
   |


and restart Postfix agan and run another OpenSSL test it is all fine with the RSA cert:


<https://forums.freebsd.org/viewtopic.php?f=43&t=46394#>
   |Verify return code: 0 (ok)
   |



So the question is, how do I get this new ECDSA certificate to work in Postfix and why doesn't it like the chain file I have created? It looks like its using the RSA certificate in the chain for the ECDSA certificate which is confusing! In case anyone's wondering, Postfix does support running more than one certificate at once. See here: http://postfix.cs.utah.edu/TLS_README.html.

   RSA, DSA and ECDSA (Postfix ? 2.6) certificates are supported. You
   can configure all three at the same time, in which case the cipher
   used determines which certificate is presented.



I am running the latest version of Postfix and OpenSSL on FreeBSD 10-STABLE

Any ideas? My Dovecot and Apache ECDSA certifcate and chain verify just fine as does my chain file used in Postfix with my RSA certificate. Its just the ECDSA one in Postfix I am battling with.

I would appreciate any help!

Reply via email to