我有一个可以正常工作的 OpenLDAP,但是在尝试按照此处的说明配置 SSL 时它被破坏了:https://help.ubuntu.com/10.04/serverguide/C/openldap-server.html。现在,当我尝试使用 -d -1 启动 ldap 时出现以下错误:
TLS:仅指定 certfile 和 keyfile 之一
主要:TLS init def ctx 失败:-1
作为一个新手,我认为我完全有可能搞砸了某些事情(我担心我按照上面的说明错误地执行了 ldapmodify 步骤),但我不知道如何撤消我所做的操作。我无法启动 ldapmodify,因为服务器已关闭。所以我有两个问题:
- 什么原因可能导致这个错误?
- 我怎样才能恢复到以前可以运行(但没有 SSL)的 OpenLDAP 版本?
注意:我不是 *nix 管理员,只是想获取 OpenLDAP 的 SSL 版本来测试我的应用程序。所以请慢慢说,用大词!
答案1
我现在无法访问我的 openldap 服务器,但我很确定您可以在新的 slapd.d/ 目录中直接更改它,尽管我们不推荐这样做。
看看运行时会得到什么(假设这是包含你的 slapd 配置的目录):
grep -R olcTLS /etc/openldap/slapd.d
答案2
根据多于指示:
如果遇到服务器无法启动的问题,请检查
/var/log/syslog
。如果看到类似 的错误main: TLS init def ctx failed: -1
,则可能是配置问题。检查证书是否由配置的文件中颁发机构签名,以及 ssl-cert 组是否对私钥具有读取权限。
答案3
我自己遇到了同样的错误,使用了@fluffywhite 的答案,grep -R /etc/openldap/slapd.d
发现 ldap 服务器正在使用不同的 CA 文件,并且该文件中的 CA 已过期。
olcTLSCACertificateFile
有 slapd 正在使用的 CA 文件的路径。
将 CA 文件替换为正确的 cacert.pem,slapd 成功启动。