OpenLDAP 服务器忽略 URI 配置

OpenLDAP 服务器忽略 URI 配置

我按照以下步骤在 N 路多主复制中设置了两台带有 OpenLDAP 的主机网站。其中一个安装的是 Debian 9.2,另一个是 Ubuntu 16.04。这台有问题的 Ubuntu 主机运行 OpenLDAP 服务器已经好几个星期了,没有任何问题。然而,在我添加复制之后,它拒绝再次启动。

常规启动失败

在新的 Debian 主机上,服务器启动正常 - 仅设置了复制。在 Ubuntu 主机上,OpenLDAP 拒绝启动。尝试启动时

$ service slapd start

系统日志显示

read_config: no serverID / URL match found. Check slapd -h arguments.  

前台启动失败

在前台模式下运行时也一样,

$ slapd -d -1

前台以 -h 启动

-h令人惊讶的是,它在附加选项时有效

$ slapd -d -1 -h ldap2.myhost.loc

配置被忽略?

配置中的设置似乎被完全忽略了:

$ grep -v '^$' /etc/ldap/ldap.conf | grep -v '^#'
BASE    dc=myldapdomain,dc=loc
URI ldap://ldap2.myhost.loc
TLS_CACERT  /etc/ssl/certs/ca-certificates.crt

尽管它已加载:

$ slapd -d -1
ldap_url_parse_ext(ldap://localhost/)
ldap_init: trying /etc/ldap/ldap.conf
ldap_init: using /etc/ldap/ldap.conf

为了成功启动服务器,我在 Ubuntu 主机上的 OpenLDAP 安装中缺少什么?

答案1

您的-h参数slapd应包含与属性列出的值之一匹配的 LDAP URI olcServerID。因此,按照您链接到的文档,您将使用-h "ldapi:// ldap://ldap1.gremaud.local"(请注意,-h应将值括起来以将多个空格分隔的 URI 列为一个值)。如果没有它,我的理解是服务器无法从属性的值中确定哪个服务器 ID 是它自己olcServerID,因此会出现错误。

我认为/etc/ldap/ldap.conf这与此无关,这是一个客户端配置文件。

相关内容