【问题标题】:ldap_modify: Other (e.g., implementation specific) error (80) [closed]ldap_modify:其他(例如,特定于实现)错误(80)[关闭]
【发布时间】:2018-08-08 10:59:48
【问题描述】:

我跟着RHEL7: Configure a LDAP directory service for user connection在CentOS Linux release 7上配置openldap。

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

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

# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif

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

# 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)

所有文件对于运行 slapd 的用户都是可读的。 那里有什么问题?我找不到任何有用的东西来喂 SEARCHENGINE。

我一直在寻找解决方案已经有一段时间了,但目前我发现的只是两个人

遇到同样的问题,问同样的问题却没有答案。

【问题讨论】:

标签: ldap redhat centos7 rhel slapd


【解决方案1】:

在我的具体情况下,我遇到了这个错误,我确实花了 在网上搜索答案。结果证明,顺序很重要。正确的顺序是:

  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 }}

我有这个

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 }}

HTH。

【讨论】:

  • 我解决了这个问题,只是按照正确的顺序使用第一个密钥然后证书。它对我有用。 dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/myldap.kart.com.key dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/myldap.kart .com.cert
  • 我无法让它工作。尝试按照建议(CACert、Key、Cert)重新排序密钥,但没有骰子......仍然有同样的错误。
  • @MarkJ.Bobak:我建议您再次阅读我的帖子,也许,请点击问题中的链接。对我来说,一个可能的原因是文件系统权限问题,如果你确定你重新排序了东西但它仍然不起作用。另外,请尝试使用更详细的日志记录设置。
  • 对我来说是证书的权限问题导致了错误chown openldap:certbot /etc/letsencrypt/ -R 在我的设置中顺序似乎无关紧要
  • 与@mRyan 类似,我的证书密钥存在权限问题。具体来说,openldap 需要能够读取它。就我而言,我将其组更改为 openldap 并将其权限设置为 640 per ubuntu.com/server/docs/service-ldap-with-tls
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多