OpenLDAP TLS 身份验证

Ama*_*vic 12 openldap tls

我正在尝试按照https://help.ubuntu.com/lts/serverguide/openldap-server.html实现 TLS 当我尝试使用此 ldif 文件修改 cn=config 数据库时:

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/test-ldap-server_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/test-ldap-server_key.pem
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

我究竟做错了什么?

编辑:当我尝试使用简单身份验证时,出现以下错误:

ldapmodify -x -D cn=admin,dc=example,dc=com -W -f certinfo.ldif
Enter LDAP Password:
ldap_bind: Invalid DN syntax (34)
        additional info: invalid DN
Run Code Online (Sandbox Code Playgroud)

小智 18

我正在遵循相同的指南并遇到相同的问题。如果您首先执行有问题的 ldapmodify 命令之后列出的“加强所有权和权限”的步骤,它将起作用 - 即:

sudo adduser openldap ssl-cert
sudo chgrp ssl-cert /etc/ssl/private
sudo chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem
sudo chmod g+X /etc/ssl/private
sudo chmod g+r /etc/ssl/private/ldap01_slapd_key.pem
Run Code Online (Sandbox Code Playgroud)

sudo systemctl restart slapd.service
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,我不得不使用`chgrp openldap`。无论如何,这是一个许可问题。+1 (2认同)

Ama*_*vic 3

好吧,我不知道这是一个解决方案还是只是一个解决方法,但我设法让它发挥作用。

我首先停止了打耳光:

service slapd stop
Run Code Online (Sandbox Code Playgroud)

然后我以调试模式启动它:

slapd -h ldapi:/// -u openldap -g openldap -d 65 -F /etc/ldap/slapd.d/ -d 65
Run Code Online (Sandbox Code Playgroud)

重要的是只能使用 ldapi:/// URL 启动它。启动后,我执行了 ldapmodify 命令并导入了属性。

最后我停止了调试模式并正常启动了 slapd。