ldap_modify:其他(例如,特定于实现的)错误(80)

D. *_*las 2 redhat ldap rhel centos7 slapd

我遵循了RHEL7:为用户连接配置LDAP目录服务,以在CentOS Linux版本7上配置openldap。

首先,我创建/etc/openldap/changes.ldif文件并粘贴内容,当然要用先前创建的密码替换密码。

然后我使用命令将新配置发送到slapd服务器

# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
Run Code Online (Sandbox Code Playgroud)

一旦这样做,我会收到以下错误:

# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
Run Code Online (Sandbox Code Playgroud)

用户slapd运行时的所有文件都是可读的。怎么了 我找不到任何有用的东西来补充SEARCHENGINE。

一段时间以来,我一直在寻找解决方案,但此刻我发现的只有两个人

有相同的问题,问相同的问题,但没有答案。

AbV*_*Vog 5

在我的特定情况下,我遇到了这个错误,我花了几天的时间在网上搜寻答案。在我看来,顺序很重要。它是

  1. olcTLSCACertificateFile
  2. olcTLSCertificateKeyFile
  3. olcTLSCertificateFile

直到文件中属性的顺序为上面的顺序,我才遇到那可怕而无益的“ ldap_modify:其他(例如,特定于实现的)错误(80)”错误。

我尝试使用来检测权限错误sudo -u ldap nano <path to each file>。每个文件都很好。

nano透露文件是DOS格式的:我将它们转换为具有Linux行尾,但无济于事。

在我阅读的所有文章中,都存在关于证书文件是否采用正确的PEM格式的问题。我无法检查,也许这也是导致此错误的原因。

唯一有效的方法是注释掉文件中的某些行,直到运行后看到更改为止ldapsearch -H ldapi:// -Y EXTERNAL -b "cn=config" -LLL -Q -s base

另请注意,我将文件中的更改“压缩”为单个更改。我所说的“压缩”是指我只进行了一次更改,而不是进行三个更改:(而不是使用此更改(我使用的是Ansible,所以这实际上是Jinja2模板))

dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: {{ cert_parentdir_ca_chain }}/{{ cert_filename_ca_chain }}

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: {{ cert_parentdir_wildcard_cert }}/{{ cert_filename_wildcard_cert }}

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: {{ ldap_cert_parentdir_key }}/{{ cert_filename_key }}
Run Code Online (Sandbox Code Playgroud)

我有这个

dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: {{ cert_parentdir_ca_chain }}/{{ cert_filename_ca_chain }}
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: {{ ldap_cert_parentdir_key }}/{{ cert_filename_key }}
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: {{ cert_parentdir_wildcard_cert }}/{{ cert_filename_wildcard_cert }}
Run Code Online (Sandbox Code Playgroud)

HTH。