Try copying the contents of the chain certificates
`sub.class1.server.ca.pem` then `ca.pem` to the contents of your
public certificate, from depth to root.

2012/6/23 Patrick Ben Koetter <p...@state-of-mind.de>:
> * Neil Aggarwal <n...@jammconsulting.com>:
>> Hello:
>>
>> I created a certificate for my mail server using the StartSSL service
>> located
>> at http://www.startssl.com/
>>
>> I set these lines in my main.cf (I already set up dovecot):
>>
>> # Rules for smtp auth
>> smtpd_sasl_type = dovecot
>> smtpd_sasl_path = private/auth
>> smtpd_sasl_auth_enable = yes
>> smtpd_recipient_restrictions =  permit_mynetworks,
>>     permit_sasl_authenticated,
>>     reject_unauth_destination
>>
>> # Enable SMTP TLS
>> smtpd_tls_cert_file = /etc/ssl/mail.nsa-lp.com.crt
>> smtpd_tls_key_file = /etc/ssl/mail.nsa-lp.com.key
>> smtpd_tls_CAfile = /etc/ssl/ca-bundle.cer
>> smtpd_tls_security_level = may
>> smtpd_tls_auth_only = yes
>>
>> I went to a remote server and tried to send an email manually.
>>
>> I connected to the server using this command:
>> openssl s_client -connect mail.nsa-lp.com:25 -starttls smtp
>>
>> I get this output:
>> CONNECTED(00000003)
>> depth=3 /C=IL/O=StartCom Ltd./CN=StartCom Certification Authority G2
>> verify error:num=19:self signed certificate in certificate chain
>> verify return:0
>> It then prints the chain, the certificate, and some other info followed by
>> this:
>> 250 DSN
>>
>> So, it looks like postfix thinks the certificate is self signed.  It does
>> not recognize the CA.
>> That is a bit strange, but it gives me the 250 code which says things should
>> be ok
>
> The 250 is a SMTP reply unrelated to the fact that your test can't verify the
> certificate. Try this command to see a verification output that enables
> s_client to look up the CA, which signed your certificate:
>
> openssl s_client -connect mail.nsa-lp.com:25 -starttls smtp -CAfile 
> /etc/ssl/ca-bundle.cer
>
>> to move forward.
>>
>> I then issue this command: ehlo jammconsulting.com
>> I get this response:
>> 250-mail.nsa-lp.com
>> 250-PIPELINING
>> 250-SIZE 10240000
>> 250-VRFY
>> 250-ETRN
>> 250-AUTH PLAIN
>> 250-ENHANCEDSTATUSCODES
>> 250-8BITMIME
>> 250 DSN
>>
>> Then, I authenticate to the server: auth plain [Base64 encoded auth]
>> I get back:
>> 235 2.7.0 Authentication successful
>>
>> I type: MAIL FROM:<n...@jammconsulting.com>
>> I get back:
>> 250 2.1.0 Ok
>>
>> Then, when I type: RCPT TO:<neilagg2...@yahoo.com>
>> I get this back:
>> RENEGOTIATING
>> depth=3 /C=IL/O=StartCom Ltd./CN=StartCom Certification Authority G2
>> verify error:num=19:self signed certificate in certificate chain
>> verify return:0
>>
>> If I type: DATA
>> I get:
>> 554 5.5.1 Error: no valid recipients
>>
>> It looks like postfix does not allow me to specify a recipient as long as it
>> thinks the certificate is self-signed.
>
> You mix error output from the openssl s_client with things that go wrong on
> the server side.
>
> Try the openssl command I showed above and see if s_client still complains
> about a "self signed certificate in certificate chain". On a sidenote:
> s_client states the cert itself is okay: "verify return:0"
>
>> How do I get Postfix to recognize this certificate as a CA signed
>> certificate?
>
> The SMTP server is dispassionate about your certificates state. It simply
> sends it. It's the client that complains, because it has to decide whether it
> is willing to accept what the server sends or not.
>
> p@rick
>
> --
> All technical questions asked privately will be automatically answered on the
> list and archived for public access unless privacy is explicitely required and
> justified.
>
> saslfinger (debugging SMTP AUTH):
> <http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>

Reply via email to