web-dev-qa-db-fra.com

Ubuntu 12.04 LDAP SSL Cert auto-signé non accepté non accepté

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é:

  • Mise à jour de mon /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
  • Mise à jour de mon /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.

7
MaddHacker

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.

https://bugs.launchpad.net/bugs/92635

1
user67717

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.

10
kenorb

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

4
Chida

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é.

2
HVNSweeting

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)...
1
Jeff Parsons