ldapsearch over ssl / tls不起作用

时间:2012-02-27 16:05:43

标签: ldap starttls

我试图在ssl / tls连接上使用ldapsearch,但它不起作用:

ldapsearch -ZZ -d 5 -b "cn=Users,dc=my,dc=server,dc=com" -s sub -D
"cn=mydevice,cn=Users,dc=my,dc=server,dc=com" -h my.server.com -p 3269
-w "mypass" -x "(cn=test)"

ldap_create
ldap_url_parse_ext(ldap://my.server.com:3269)
ldap_extended_operation_s
ldap_extended_operation
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP my.server.com:3269
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.199.46.70:3269
ldap_connect_timeout: fd: 3 tm: -1 async: 0
ldap_open_defconn: successful
ldap_send_server_request
ber_scanf fmt ({it) ber:
ber_scanf fmt ({) ber:
ber_flush: 31 bytes to sd 3
ldap_result ld 0x95ff590 msgid 1
wait4msg ld 0x95ff590 msgid 1 (infinite timeout)
wait4msg continue ld 0x95ff590 msgid 1 all 1
** ld 0x95ff590 Connections:
* host: my.server.com  port: 3269  (default)
refcnt: 2  status: Connected
last used: Mon Feb 27 10:59:43 2012

** ld 0x95ff590 Outstanding Requests:
* msgid 1,  origid 1, status InProgress
outstanding referrals 0, parent count 0
** ld 0x95ff590 Response Queue:
Empty
ldap_chkResponseList ld 0x95ff590 msgid 1 all 1
ldap_chkResponseList returns ld 0x95ff590 NULL
ldap_int_select
read1msg: ld 0x95ff590 msgid 1 all 1
ber_get_next
ldap_perror
ldap_start_tls: Can't contact LDAP server (-1)

错误消息未提供有关错误的提示。相比之下,简单的绑定和搜索在端口389上没有任何问题。

任何提示?

P.S。这是我的ldap.conf:

TLS_REQCERT demand
TLS_CACERT ./cacert.pem

我甚至尝试将TLS_REQCERT更改为never,但它仍无效。 : - (

1 个答案:

答案 0 :(得分:56)

首先,按照@dearlbry的建议,将-h my.server.com -p 3269替换为-H ldaps://my.server.com:3269

然后,在/etc/openldap/ldap.conf(或我的Ubuntu 13.04上的/etc/ldap/ldap.conf)中,通过添加以下内容来禁用证书验证:

HOST my.server.com
PORT 3269
TLS_REQCERT ALLOW

如果您不想影响整个系统,也可以在当前目录中创建具有相同内容的ldaprc文件。

这将启用SSL上的ldapsearch,但不进行验证。请按照这些steps to add certificate validation进行混音。