Я выполняю OpenLDAP на актуальном поле Debian. Я пытаюсь выполнить простую команду:
ldapsearch -x -h <<IP>>:636 -D cn=<<BASE DN>> -d1
и я получаю этот вывод:
ldap_create
ldap_url_parse_ext(ldap://<<IP>>:636)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP <<IP>>:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying <<IP>>:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
ldap_open_defconn: successful
ldap_send_server_request
ber_scanf fmt ({it) ber:
ber_scanf fmt ({i) ber:
ber_flush2: 35 bytes to sd 3
ldap_result ld 0x7f962cf14460 msgid 1
wait4msg ld 0x7f962cf14460 msgid 1 (infinite timeout)
wait4msg continue ld 0x7f962cf14460 msgid 1 all 1
** ld 0x7f962cf14460 Connections:
* host: <<IP>> port: 636 (default)
refcnt: 2 status: Connected
last used: Wed Dec 17 13:48:09 2014
** ld 0x7f962cf14460 Outstanding Requests:
* msgid 1, origid 1, status InProgress
outstanding referrals 0, parent count 0
ld 0x7f962cf14460 request count 1 (abandoned 0)
** ld 0x7f962cf14460 Response Queue:
Empty
ld 0x7f962cf14460 response count 0
ldap_chkResponseList ld 0x7f962cf14460 msgid 1 all 1
ldap_chkResponseList returns ld 0x7f962cf14460 NULL
ldap_int_select
read1msg: ld 0x7f962cf14460 msgid 1 all 1
ber_get_next
ldap_err2string
ldap_result: Can't contact LDAP server (-1)
ldap_free_request (origid 1, msgid 1)
ldap_free_connection 1 1
ldap_free_connection: actually freed
Я в замешательстве относительно того, что это на самом деле означает. Кажется, что все идет прекрасное, но затем это гадит кровать при попытке получить результаты. Есть ли что-нибудь в том выводе, который говорит, может привести меня к выяснению, почему мой поиск не работает?
Когда я выполняю тот же запрос, не указывая защищенный порт, мой поиск хорошо работает:
ldapsearch -x -h <<IP>> -D cn=<<BASE DN>>
Вместо того, чтобы указывать порт SSL после IP-адреса, используйте протокол ldaps в URI с ключом -H.
ldapsearch -x -H ldaps: //127.0.0.1 - D cn = [базовое DN] -d1
Если вы подключаетесь к серверу с самоподписанным сертификатом, вам также может потребоваться изменить ldap.conf, чтобы отключить проверку сертификата:
HOST 127.0.0.1
PORT 636
TLS_REQCERT ALLOW
Скопируйте локальный (самосозданный) целевой сервер и центр сертификации локальной сети в папку /usr/local/share/ca-certificates/ сервера, на котором вы хотите использовать ldapпоиск.
Выполните команду
sudo update-ca-certificates
После этого запрос ldapsearch будет работать.