[Dovecot] Thunderbird STARTTLS error
Bill Cole
dovecot-20110531 at billmail.scconsult.com
Wed May 9 18:07:31 EEST 2012
On 9 May 2012, at 9:51, Markus Fritz wrote:
> Am 09.05.2012 15:42, schrieb Bill Cole:
>> On 9 May 2012, at 9:05, Markus Fritz wrote:
>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Am 09.05.2012 14:32, schrieb Ken Stevenson:
>>>>>
>>>>> I got only this keys. Can you explain me what exactly you mean
>>>>> with
>>>>> adding chains?
>>>>> And I wonder why this error only occurs in Thunderbird, not in
>>>>> openssl.
>>>>>
>>>>
>>>> Never mind, I don't think my first guess was correct. I wonder if
>>>> it
>>> has to do with the error 27 reported in the verify by openssl.
>>> According
>>> to the manual, an error 27 means:
>>>>
>>>> "the root CA is not marked as trusted for the specified purpose."
>>>>
>>>> It looks like the certificate is valid cryptographically, but that
>>>> it
>>> wasn't certified for how you're using it.
>>>>
>>>> If I run:
>>>>
>>>> openssl x509 -in ssl.crt -noout -text
>>>>
>>>> The output includes the following:
>>>>
>>>> X509v3 Extended Key Usage:
>>>> TLS Web Server Authentication, TLS Web Client Authentication
>>>> X509v3 Key Usage: critical
>>>> Digital Signature, Key Encipherment
>>>>
>>>> Does yours look different?
>>>
>>> Mine looks like this:
>>>
>>> X509v3 Basic Constraints:
>>> CA:FALSE
>>
>> There's your problem.
>>
>> If you use a root CA in any X.509 trust chain (even one consisting of
>> a single self-signed certificate) that declares itself to not be
>> legitimate for use as a CA, you will have any signed certificates
>> treated as bogus by any proper X.509v3 implementation. Most tools
>> that
>> create certificates do so with assumptions suited to the external CA
>> model, and set options like the Basic Constraints extension flags
>> that
>> are not fit for a self-signed certificate.
>>
> Sorry for my stupid question, but how I can resolve this with a
> SartSSL
> signed cert? There I am able to generate a WEB or MIME cert. Thanks
> for
> help!
I apologize: I misunderstood which certificate you were looking at with
openssl.
Having re-read the whole thread and after reading at the pastebin items
you posted, I believe the problem you are having is a result of the fact
that your certificate is not directly signed by the StartSSL root CA,
but is "chained" with an intermediate certificate. This is a common
situation, and it means that a client needs some way to get a copy of
the intermediate certificate that was used to sign the server
certificate. The normal way to do that is to put all of the certificates
in the chain into the certificate file so that the server using that
file sends them all to clients. This is documented at
http://wiki.dovecot.org/SSL/DovecotConfiguration#Chained_SSL_certificates
The intermediate certificate that you need can be retrieved from
http://aia.startssl.com/certs/sub.class1.server.ca.crt in DER format.
You need to convert that to PEM format ('openssl x509 -inform DER <
sub.class1.server.ca.crt' will put out the certificate in PEM form) and
add it to your certificate file (based on your pastebin:
/etc/ssl/opsys/startssl/ssl.crt). You may also want to add the actual
StartSSL root certificate as well, but that is unlikely to be necessary.
A failure of a certificate to verify in some clients and not others or
for some users and not others is usually do to a server not including
intermediate CA certificates. Some clients and users may have a store of
certificates that includes a widely-used intermediate CA cert provide by
some other server in the past, so they will be able to verify the chain,
while others won't have the cert and may have no persistent cert store.
More information about the dovecot
mailing list