我已经在 ubuntu 14.04 上设置了一个包含 tls 的 openldap 服务器,如下所示本指南。
在测试连接时,我得到了无法解释的结果。
ldapsearch -xLLL -Z -W -D cn=admin,cn=config -b cn=config cn=config
结果是
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcLogLevel: none
olcLogLevel: stats
olcPidFile: /var/run/slapd/slapd.pid
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
olcTLSCertificateFile: /etc/ssl/certs/ldap01_slapd_cert.pem
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_slapd_key.pem
olcToolThreads: 1
正如预期的那样。但增加调试级别
ldapsearch -d 2 -xLLL -Z -W -D cn=admin,cn=config -b cn=config cn=config
结果是
ldap_write: want=31, written=31
0000: 30 1d 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 0....w...1.3.6.1
0010: 2e 34 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .4.1.1466.20037
ldap_read: want=8, got=8
0000: 30 0c 02 01 01 78 07 0a 0....x..
....
Enter LDAP Password:
....
00a0: a6 c4 2f 78 97 fb e1 ea ce c3 03 d6 8c 0e fa 75 ../x...........u
00b0: df e7 89 91 e8 df e2 70 94 ca d3 c7 5c af a0 d0 .......p....\...
00c0: bf 76 10 70 47 .v.pG
tls_write: want=117 error=Bad file descriptor
所以,让我怀疑的是这个信息错误=错误的文件描述符。
我的/etc/ldap/ldap.conf是
uri ldap://myfqdn/
ldap_version 3
ssl start_tls
tls_cacert /etc/ssl/certs/cacert.pem
TLS_REQCERT allow
在/var/log/syslog我看到了最后一次测试
Jan 8 17:03:00 kyrill slapd[29857]: conn=1008 op=0 EXT oid=1.3.6.1.4.1.1466.20037
Jan 8 17:03:00 kyrill slapd[29857]: conn=1008 op=0 STARTTLS
Jan 8 17:03:00 kyrill slapd[29857]: conn=1008 op=0 RESULT oid= err=0 text=
Jan 8 17:03:00 kyrill slapd[29857]: conn=1008 fd=19 ACCEPT from IP=127.0.0.1:39973 (IP=0.0.0.0:389)
Jan 8 17:03:00 kyrill slapd[29857]: conn=1008 fd=19 TLS established tls_ssf=128 ssf=128
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 op=1 BIND dn="cn=admin,cn=config" method=128
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 op=1 BIND dn="cn=admin,cn=config" mech=SIMPLE ssf=0
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 op=1 RESULT tag=97 err=0 text=
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 op=2 SRCH base="cn=config" scope=2 deref=0 filter="(cn=config)"
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 op=3 UNBIND
Jan 8 17:03:04 kyrill slapd[29857]: conn=1008 fd=19 closed
Jan 8 17:03:04 kyrill slapd[29857]: connection_read(19): no connection!
实际上,我不知道如何追踪这个问题。任何帮助或建议都非常感谢。