Je travaille avec Ubuntu 12.04, en utilisant OpenLDAP Server. J'ai suivi les instructions sur les pages d'aide Ubunt et peut heureusement se connecter sans sécurité. Pour tester ma connexion, j'utilise ldapsearch
la commande ressemble à:
ldapsearch -xv -H ldap://ldap.[my Host].local -b dc=[my domain],dc=local -d8 -ZZ
J'ai aussi utilisé:
ldapsearch -xv -H ldaps://ldap.[my Host].local -b dc=[my domain],dc=local -d8
Pour autant que je sache, j'ai installé mon certificat correctement, mais peu importe pourquoi j'essaie, je ne peux pas sembler avoir ldapsearch
pour accepter mon certificat auto-signé.
Jusqu'à présent, j'ai essayé:
/etc/ldap/ldap.conf
Fichier à ressembler:BASE dc=[my domain],dc=local URI ldaps://ldap.[my Host].local TLS_CACERT /etc/ssl/certs/cacert.crt TLS_REQCERT allow
/etc/ldap.conf
Fichier à ressembler:base dc=[my domain],dc=local uri ldapi:///ldap.[my Host].local uri ldaps:///ldap.[my Host].local ldap_version 3 ssl start_tls ssl on tls_checkpeer no TLS_REQCERT allow
Mise à jour de mon /etc/default/slapd
inclure:
Slapd_services = "LDAP: /// ldapi: /// ldaps: ///"
Plusieurs heures de googling, dont la plupart ont abouti à ajouter le TLS_REQCERT allow
L'erreur exacte que je vois est:
ldap_initialize( ldap://ldap.[my Host].local )
request done: ld 0x20038710 msgid 1
TLS certificate verification: Error, self signed certificate in certificate chain
TLS: can't connect.
ldap_start_tls: Connect error (-11)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Après plusieurs heures, j'espérais que quelqu'un d'autre a vu ce problème et/ou sait comment le réparer. S'il vous plaît faites-moi savoir si je devrais ajouter plus d'informations ou si vous avez besoin de données supplémentaires.
Le problème est que la version de gnutls expédiée avec Ubuntu 12.04 utilise une back-end crypto défectueuse.
Gnoutls était censé être éventuellement éventuellement à l'aide de Gycrypt comme back-end crypto à l'ortie mais il y a des problèmes de licence. Spécifiquement, certaines licences GPL permettent une liaison avec des versions plus récentes ou plus anciennes de la GPL et certaines ne le font pas.
Vous pouvez reconstruire des gnoutls à partir de la source configuré avec une ortie ou un piratage gcrypt comme howard Chu a suggéré une autre place. Les instructions sur le premier sont dans ce rapport de bogue.
Met le LDAPTLS_REQCERT
variable à never
_ Pour ignorer le certificat sur le serveur pouvant être expiré ou invalide I.e.:
LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"
ou vérifier le serveur s'il a le bon certificat.
Sur la machine clientèle, où vous exécutez LDAPSearch, vous devez avoir dans le LDAP.Conf.
Tls_cacert /etc/sssl/certs/caCert.crt
J'ai copié le chemin de votre configuration du serveur où vous avez stocké le certificat de CA. Copiez le certificat CA du serveur au client au même endroit que le chemin.
Voir ici - http://www.openldap.org/pub/ksoper/openldap_tls.html
Obtenu ce même problème, ma raison d'échec utilise LDAP sur 12.04 (le package SLAPD est construit avec gnutls) avec mon certificat créé OpenSSL (avec Script Ca.pl)
Solution: recréer certificat auto-signé par certTool de gnutls, puis mon LDAP avec TLS a fonctionné.
J'ai rencontré un problème similaire - essayant de ldapsearch un serveur de répertoires LDAPS avec un certificat auto-signé. Voici l'erreur réelle que vous obtenez de LDapSearch avec -D8 de débogage Set:
TLS certificate verification: Error, self signed certificate in certificate chain
TLS: can't connect.
ldap_bind: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
J'ai trouvé que le serveur était déjà configuré avec "TLS_REQCERT ESSAYER", donc je voulais ne pas modifier le ldap.conf du serveur actuel au cas où il a été configuré et travailler pour d'autres applications. J'ai constaté qu'il existe un fichier de configuration local '.LDAPRC' qui est utilisé pour effectuer des travaux de LDAPSearch (et d'autres utilitaires) sans la configuration globale. Cela m'a permis de remplacer le paramètre TLS_REQCERT pour devenir "Autoriser" qui a résolu ma question de LDAPSearch:
#~/.ldaprc
TLS_REQCERT allow
Voici la sortie avec cette place et -D8:
TLS certificate verification: Error, self signed certificate in certificate chain
TLS: unable to get peer certificate.
... (actual query works)...