2012-02-27 24 views
21

Estoy tratando de utilizar ldapsearch sobre SSL/TLS conexión, pero no funciona:ldapsearch sobre SSL/TLS no funciona

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) 

El mensaje de error no da indicio lo suficientemente en lo que es incorrecto. Por el contrario, un enlace simple y la búsqueda van bien sin ningún problema en el puerto 389.

¿Alguna pista?

P.S. Aquí está mi ldap.conf:

TLS_REQCERT demand 
TLS_CACERT ./cacert.pem 

Incluso he tratado de cambiar TLS_REQCERT a never, pero todavía no funciona. :-(

+1

Parece que no intenta utilizar TLS. En su lugar, podría usar el interruptor -H con una URL LDAP: ldapsearch -ZZ -d 5 -b "cn = Usuarios, dc = my, dc = servidor, dc = com" -s sub -D "cn = mydevice , cn = Usuarios, dc = my, dc = servidor, dc = com "-H ldaps: //my.server.com: 3269 -w" mypass "-x" (cn = prueba) " – dearlbry

Respuesta

44

En primer lugar, sustituir -h my.server.com -p 3269 con -H ldaps://my.server.com:3269 según lo sugerido por @dearlbry

Luego, en /etc/openldap/ldap.conf (o /etc/ldap/ldap.conf en mi Ubuntu 13.04), desactivar la verificación del certificado mediante la adición de esto:.

HOST my.server.com 
PORT 3269 
TLS_REQCERT ALLOW 

También puede crear un archivo ldaprc en el directorio actual con el mismo contenido si no desea afectar a todo el sistema.

Este wil Hago ldapsearch sobre SSL, pero sin verificación. Siga estos steps to add certificate validation a la mezcla.