Hello,

I'm having some trouble getting a Comodo PositiveSSL certificate to work
correctly with Postfix 2.7.0.

I've attempted to follow the instructions at
http://www.postfix.org/postconf.5.html#smtpd_tls_cert_file :

"You should include the required certificates in the server certificate
file, the server certificate first, then the issuing CA(s) (bottom-up
order)."

The CA and root information that Comodo provides for PositiveSSL
certificates is as follows (
https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1182
):

PositiveSSL
» Root: AddTrustExternalCARoot.crt
» Intermediate: PositiveSSLCA2.crt
» End-Entity/Domain Certificate

I created the certificate with the following command:

$ cat example_com.crt PositiveSSLCA2.crt AddTrustExternalCARoot.crt >
/root/ssl/example.com.pem

Then I added the following to main.cf:

# TLS parameters
smtpd_tls_cert_file = /root/ssl/example.com.pem
smtpd_tls_key_file = /root/ssl/example.com.key
smtpd_use_tls = yes

But when I attempt to verify the certificate chain, I always receive
"19:self signed certificate in certificate chain".

$ openssl s_client -connect example.com:25 -starttls smtp
CONNECTED(00000003)
depth=2 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN
= AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=example.com
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA
Limited/CN=PositiveSSL CA 2
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA
Limited/CN=PositiveSSL CA 2
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust
External CA Root
 2 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust
External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust
External CA Root
---
...


What might the problem be? Isn't the last certificate in the chain
*supposed to be* self-signed?

I thought that perhaps the client machine from which I am attempting to
verify the certificate may lack the AddTrust certificate (#2 in the
chain), but when I tried installing it, the certificate was recognized
as a duplicate (i.e., it is already installed):

# cp AddTrustExternalCARoot.crt
/usr/local/share/ca-certificates/AddTrustExternalCARoot.crt

# update-ca-certificates
Updating certificates in /etc/ssl/certs... WARNING: Skipping duplicate
certificate AddTrustExternalCARoot.crt
WARNING: Skipping duplicate certificate AddTrustExternalCARoot.crt
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.

I'm not sure what to try next. I must be missing something simple...

For privacy reasons, I have omitted it here, but I'll provide the
sanitized output of "postconf -n" if it would be helpful; just ask.

Thanks for any help with this!

-Ben

Reply via email to