我正在尝试使用自签名证书配置exim
和之间的安全连接。需要验证 LDAP 服务器提供的 TLS 证书,但客户端身份验证时验证失败:slapd
ldap_require_cert = hard
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 进行了配置,一切运行良好。以下是其中的一部分dovecot-ldap.conf
:
...
tls = yes
tls_ca_cert_file = /etc/dovecot/ssl/ldap_ca.cert
tls_require_cert = hard
那么我做错了什么?
答案1
更改hard
为 即可demand
解决问题。来自man ldap.conf
:demand | hard These keywords are equivalent.