我试图在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
,但它仍无效。 : - (
答案 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进行混音。