Назад | Перейти на главную страницу

Exim4: не удается подключиться к серверу LDAP с «ldap_require_cert = hard»

Я пытаюсь настроить безопасное соединение между exim и slapd используя самоподписанный сертификат. В ldap_require_cert = hard требуется для проверки сертификата TLS, представленного сервером LDAP, но проверка не выполняется при аутентификации клиента:

2017-07-20 15:51:26 login authenticator failed for (client) [10.0.5.2]: 435 Unable to authenticate at present (set_id=user1): lookup of "user=uid=user1,ou=accounts,dc=domain,dc=local pass=123 ldap:///uid=user1,ou=accounts,dc=domain,dc=local?uid?sub?(&(uid=user1)(objectClass=VirtualMailAccount)(accountActive=TRUE))" gave DEFER: failed to initiate TLS processing on an LDAP session to server mail.domain.local:389 - ldap_start_tls_s() returned -1: Can't contact LDAP server

Все работает хорошо с участием ldap_require_cert = never, но мне нужно проверить сертификат сервера.

Вот фрагмент файла конфигурации exim:

...
ldap_default_servers = mail.domain.local
ldap_start_tls = true
ldap_require_cert = hard
ldap_version = 3
ldap_ca_cert_file = /etc/exim4/ssl/ldap_ca.cert
...

Я почти уверен, что это не проблема с разрешением (я установил 777 режим во время расследования).

Также у меня получилось с такой же конфигурацией для голубятни, все отлично работает. Вот кусок dovecot-ldap.conf:

...
tls = yes
tls_ca_cert_file = /etc/dovecot/ssl/ldap_ca.cert
tls_require_cert = hard

Так что я делаю не так?

Изменение hard к demand решает проблему. Из man ldap.conf: demand | hard These keywords are equivalent.