Dovecot can't connect to openldap over starttls

info at gwarband.de info at gwarband.de
Mon Mar 20 21:33:51 EET 2017


The user "dovecot" can access and read the cert.
Here is an output of the console:
https://gwarband.de/openldap/dovecot-certs.log

So I think there is nothing what prevent Dovecot to access the file.

Tobias

Am 2017-03-20 20:14, schrieb Tomas Habarta:
> Actually, I likely managed to replicate the problem itself.
> I've observed described behavior (timeout with connection error) only 
> if
> Dovecot's tls_ca_cert_file provided either non-existent file or there
> was no read access to the existing file -- found during review after
> sending my last post as I run CentOS, not Debian and didn't adjust the
> path correctly (/etc/ldap vs. /etc/openldap) in dovecot-ldap.conf when
> setting that up.
> 
> Anyway, ldapsearch uses the same library as Dovecot so if ldapsearch
> works, Dovecot _simply_ must work as well ;)
> 
> As mentioned, I normally run CentOS, where /etc/ssl/certs has SELinux
> security context; don't you by any chance run something similar which
> may prevent Dovecot from accessing the file?
> 
> I tested on Debian 8 with the standard repo software (same versions 
> you
> reported), even tried also 2.2.27 from backports and all worked ok, so
> there seems to be nothing wrong with both software at all, just some
> little thing in the configuration...
> 
> 
> Tomas
> 
> 
> On 03/20/2017 02:04 PM, info at gwarband.de wrote:
>> I've tested your soulution, but it also says the same error.
>> I've tested all combinations of:
>>        - tls_ca_cert_file = <cert>
>>        - tls = yes
>>        - tls_require_cert = demand
>> 
>> Every time it says "Connection error".
>> Only when tls is uncommented it says "TLS required".
>> 
>> Additional information from my contact with the openldap-technical
>> mailing list:
>> The ldapsearch under the user dovecot with -ZZ works fine.
>> And they mention that the ldap.conf and dovecot-ldap.conf should have 
>> no
>> differences, that is correct no differences.
>> Here is a link to the ldap.conf
>> https://gwarband.de/openldap/ldap.conf
>> And the output of ldapsearch under dovecot:
>> https://gwarband.de/openldap/ldapsearch-dovecot.log
>> 
>> Tobias
>> 
>> Am 2017-03-20 11:00, schrieb Tomas Habarta:
>>> I've finally managed that running on Debian 8 test machine by 
>>> commenting
>>>     tls_ca_cert_file =
>>> option from dovecot-ldap.conf, so only
>>>     tls = yes
>>>     tls_require_cert = demand
>>> 
>>> Not sure why is that as on my CentOS6 Dovecot works even with that
>>> commented option. May be that CentOS and Debian uses different ldap
>>> library or different versions or there's another peculiarity ...
>>> 
>>> Anyway, when tls_require_cert = demand is set, cite:
>>> --
>>> With a setting of demand the certificate is requested and a valid
>>> certificate must be provided, otherwise the session is immediately
>>> terminated.
>>> --
>>> 
>>> As that option doesn't provide any source, it is taken from
>>> /etc/ldap/ldap.conf on Debian and if it's missing there, Dovecot 
>>> client
>>> times out on validating provided certificate with
>>> 
>>> imap-login: Error: Timeout waiting for handshake from auth server.
>>> imap-login: Disconnected: Auth process broken (disconnected before 
>>> auth
>>> was ready, waited 30 secs)
>>> 
>>> 
>>> 
>>> Tomas
>>> 
>>> 
>>> On 03/18/2017 02:22 PM, info at gwarband.de wrote:
>>>> The serverlog of openldap with loglevel "any":
>>>> https://gwarband.de/openldap/openldap-connect.log
>>>> Note: openldap waits 1 Minute before he says "TLS negotiation 
>>>> failure"
>>>> after the connect.
>>>> and dovecot says direct "Connect error"
>>>> 
>>>> I've also delete the TLSCipherSuite from openldap.
>>>> 
>>>> Tobias
>>>> 
>>>> Am 2017-03-18 14:01, schrieb Tomas Habarta:
>>>>> Increase log level on server side as well to see what the server
>>>>> says...
>>>>> You may remove anything in TLSCipherSuite for the purpose of 
>>>>> testing
>>>>> too.
>>>>> 
>>>>> Hopefully anyone knowing OpenLDAP internals could help you analyse 
>>>>> it
>>>>> more deeply.
>>>>> 
>>>>> Tomas
>>>>> 
>>>>> On 03/18/2017 01:31 PM, info at gwarband.de wrote:
>>>>>> I've replicate the settings from ldapsearch to dovecot but no 
>>>>>> success.
>>>>>> To the certificate:
>>>>>> Yes it's a *.crt file but I have linked the *.pem file to it and
>>>>>> dovecot
>>>>>> has read access to that file.
>>>>>> 
>>>>>> I have enabled the debugging in dovecot and have uploaded the 
>>>>>> output:
>>>>>> https://gwarband.de/openldap/dovecot-connect.log
>>>>>> 
>>>>>> And the other site with ldapsearch:
>>>>>> https://gwarband.de/openldap/ldapsearch-connect.log
>>>>>> 
>>>>>> I'm pretty sure that there is a problem with the sslhandshaking
>>>>>> between
>>>>>> openldap and dovecot, but I can't find the source of the problem.
>>>>>> 
>>>>>> One of the steps in the sslhandshaking is not success but in the
>>>>>> debugging output I can't find any line with a hit to it.
>>>>>> 
>>>>>> Tobias
>>>>>> 
>>>>>> Am 2017-03-18 12:30, schrieb Tomas Habarta:
>>>>>>> Well, if ldapsearch works, try to replicate its settings for 
>>>>>>> dovecot
>>>>>>> client.
>>>>>>> It's not obvious what settings ldapsearch uses, have a look at
>>>>>>> default
>>>>>>> client settings in /etc/openldap/ldap.conf, there may be 
>>>>>>> something
>>>>>>> set a
>>>>>>> slightly different way.
>>>>>>> Also double check permissions for files used by dovecot, I mean
>>>>>>> mainly
>>>>>>> the file listed for tls_ca_cert_file as dovecot may not have an
>>>>>>> access
>>>>>>> for reading...
>>>>>>> 
>>>>>>> I cannot see anything downright bad, just posted CA cert (which 
>>>>>>> is
>>>>>>> ok,
>>>>>>> tested) is *.crt and your config mentions *.pem but I consider
>>>>>>> it's the
>>>>>>> same file.
>>>>>>> 
>>>>>>> Finally, I would recommend to enable debug option for dovecot's
>>>>>>> client
>>>>>>>     debug_level = -1 (which logs all available) in your
>>>>>>> dovecot-ldap.conf
>>>>>>> to see what the library reports and work further on that.
>>>>>>> You can compare with output from ldapsearch by adding -d-1 
>>>>>>> switch to
>>>>>>> it.
>>>>>>> 
>>>>>>> Hard to tell more at the moment.
>>>>>>> 
>>>>>>> 
>>>>>>> Tomas
>>>>>>> 
>>>>>>> On 03/18/2017 09:41 AM, info at gwarband.de wrote:
>>>>>>>> Hello,
>>>>>>>> 
>>>>>>>> I have also installed LE certs.
>>>>>>>> But nothing helps, I have double-checking all certs.
>>>>>>>> 
>>>>>>>> ldapsearch with -ZZ works see:
>>>>>>>> https://gwarband.de/openldap/ldapsearch.log
>>>>>>>> 
>>>>>>>> I have also uploaded the TLSCACertificateFile, maybe I have a
>>>>>>>> failure in
>>>>>>>> the merge of the two fiels:
>>>>>>>> https://gwarband.de/openldap/LetsEncrypt.crt
>>>>>>>> 
>>>>>>>> And also I have uploaded my complete openldap configuration:
>>>>>>>> https://gwarband.de/openldap/openldap.conf
>>>>>>>> 
>>>>>>>> All other components can work and communicate with my openldap
>>>>>>>> server.
>>>>>>>> The components are postfix, openxchange, apache (phpldapadmin).
>>>>>>>> 
>>>>>>>> My installated software is:
>>>>>>>> Debian 8
>>>>>>>> OpenLDAP 2.4.40
>>>>>>>> Dovecot 2.2.13
>>>>>>>> 
>>>>>>>> I hope you can find the issue.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Tobias
>>>>>>>> 
>>>>>>>> Am 2017-03-17 22:48, schrieb Tomas Habarta:
>>>>>>>>> Hi,
>>>>>>>>> 
>>>>>>>>> been running Dovecot 2.2.27 against OpenLDAP 2.4.40 normally
>>>>>>>>> over the
>>>>>>>>> unix socket on the same machine, but tried over inet with 
>>>>>>>>> STARTTLS
>>>>>>>>> and
>>>>>>>>> it's working ok...
>>>>>>>>> 
>>>>>>>>> I would suggest double-checking key/certs setup on OpenLDAP
>>>>>>>>> side; for
>>>>>>>>> the test I have used LE certs, utilizing following cn=config
>>>>>>>>> attributes:
>>>>>>>>> 
>>>>>>>>> olcTLSCertificateKeyFile    contains private key
>>>>>>>>> olcTLSCertificateFile        contains certificate
>>>>>>>>> olcTLSCACertificateFile        contains both certs (DST Root 
>>>>>>>>> CA X3
>>>>>>>>>                 and Let's Encrypt Authority X3)
>>>>>>>>> 
>>>>>>>>> and used the same CA file in Dovecot's tls_ca_cert_file
>>>>>>>>> 
>>>>>>>>> Is ldapsearch working ok (-ZZ) and only Dovecot has troubles 
>>>>>>>>> or
>>>>>>>>> ... ?
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Hope that helps, good luck ;)
>>>>>>>>> Tomas
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On 03/17/2017 04:27 PM, info at gwarband.de wrote:
>>>>>>>>>> Hello guys,
>>>>>>>>>> 
>>>>>>>>>> actually I'm trying to configure dovecot to access openldap 
>>>>>>>>>> for
>>>>>>>>>> passwordcheck.
>>>>>>>>>> My openldap is only allow access over "secure ldap".
>>>>>>>>>> The dovecot can communicate with the openldap server but 
>>>>>>>>>> there is
>>>>>>>>>> maybe
>>>>>>>>>> a failure in the sslhandshake.
>>>>>>>>>> Additional information you can find in the logs or in the 
>>>>>>>>>> dump
>>>>>>>>>> below.
>>>>>>>>>> Also I have my ldap config from dovecot in the links below.
>>>>>>>>>> 
>>>>>>>>>> I have already created an bug reporting in the system of 
>>>>>>>>>> openldap
>>>>>>>>>> but
>>>>>>>>>> the answer was to get support from her.
>>>>>>>>>> 
>>>>>>>>>> All datalinks:
>>>>>>>>>> https://gwarband.de/openldap/dovecot.log
>>>>>>>>>> https://gwarband.de/openldap/dovecot-ldap.conf
>>>>>>>>>> https://gwarband.de/openldap/openldap.log
>>>>>>>>>> https://gwarband.de/openldap/trace.dump
>>>>>>>>>> 
>>>>>>>>>> The bugreportinglink from openldap:
>>>>>>>>>> http://www.openldap.org/its/index.cgi/Incoming?id=8615
>>>>>>>>>> 
>>>>>>>>>> I hope you can help me.
>>>>>>>>>> 
>>>>>>>>>> Regards.
>>>>>>>>>> Tobias Warband


More information about the dovecot mailing list