我有一个 LDAP 服务器,它通过端口 636 上的 ldaps 接受请求。我已经将它用于我的许多应用程序,并且我想让我的 dovecot 服务器也使用它进行身份验证。
dovecot ldap配置:
uris = ldaps://<<ldap-url>>:636
auth_bind = yes
dn = <<dn>>
dnpass = <<pw>>
ldap_version = 3
base = <<base>>
deref = never
scope = subtree
default_pass_scheme = SSHA
blocking=yes # apparently this sometimes helps, but not in this case
# user filter
#user_attrs = mailHomeDirectory=mail,mailStorageDirectory=mail,mailQuota=quota_rule=*:bytes=%$
user_attrs =
user_filter = (&(objectClass=mailUser)(maildrop=%u))
# password filter
#pass_attrs = maildrop=user,userPassword=password
pass_attrs = userPassword=password
pass_filter = (&(objectClass=mailUser)(maildrop=%u))
#iterate_attrs = mail=user
#iterate_filter = (objectClass=mailUser)
LDAP 服务器已启动并正在运行,我可以使用 JXplorer 绑定到已配置的 dn 和已配置的 pass 和 base,但不能使用 dovecot 绑定到。
相关日志部分:
dovecot: auth-worker(15177): Error: LDAP: Can't connect to server: ldaps://ldap.ropi.dev:636
答案1
这个问题(以及解决方案)非常独特。所以我开始做这一切的原因是我想逐步淘汰我的一台服务器。在很大程度上,我从它中删除了所有功能,这是最后一个。
这也意味着我有一段时间没有更新我的软件包了。
现在我使用 LetsEncrypt 证书进行 SSL 通信。问题是,LetsEncrypt 提供的证书链中的一个证书已于 2021.09.30 过期。由于我有一段时间没有更新系统了,所以我的证书链没有新证书。这就是我不断收到 tls 握手错误的原因。
因此,就我的情况而言,解决方案非常简单:
sudo yum upgrade -y
sudo systemctl restart dovecot
感谢@naxto asenjo 帮助我发现这个问题。