Cuando intento hacer conexiones ldaps a mi servidor Novel eDirectory 8.8, a veces tengo que poner TLS_REQCERT never
el archivo ldap.conf de los servidores del cliente. Obviamente, esta es una mala idea.
El comando que ejecuto es algo así con credenciales que realmente funcionan ...
ldapsearch -x -H ldaps://ldapserver -b 'ou=active,ou=people,dc=example,dc=org' -D 'cn=admin,dc=example,dc=org' -W "cn=username"
En Ubuntu 13.10, funciona bien.
En SLES funciona bien.
En CentOS 6.5 devuelve:
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Ahora, el certificado que he importado es un certificado comodín comprado en DigiCert. Mi compañero de trabajo encontró algunos informes que indican que algunos sistemas tienen problemas con los comodines.
Entonces, ¿el culpable es el comodín? Si es así, ¿cómo lo soluciono?
Si no es el certificado comodín, ¿qué es?
Siguiendo la sugerencia de Andrew Schulman, agregué -d1
a mi comando ldapsearch. Esto es lo que terminé con:
ldap_url_parse_ext(ldaps://ldap.example.org)
ldap_create
ldap_url_parse_ext(ldaps://ldap.example.org:636/??base)
Enter LDAP Password:
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.example.org:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.225.0.24:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: certdb config: configDir='/etc/openldap' tokenDescription='ldap(0)' certPrefix='cacerts' keyPrefix='cacerts' flags=readOnly
TLS: cannot open certdb '/etc/openldap', error -8018:Unknown PKCS #11 error.
TLS: could not get info about the CA certificate directory /etc/openldap/cacerts - error -5950:File not found.
TLS: certificate [CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US] is not valid - error -8172:Peer's certificate issuer has been marked as not trusted by the user..
TLS: error: connect - force handshake failure: errno 2 - moznss error -8172
TLS: can't connect: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Por lo que dice, ¿CentOS no confía en DigiCert? ¿O CentOS no tiene una lista de emisores de confianza?
telnet ldapserver ldaps
oopenssl s_client -connect ldapserver:636
.