web-dev-qa-db-fra.com

OpenLDAP: erreur TLS -8179: l'émetteur du certificat de Peer n'est pas reconnu

Je ne connais pas bien les certificats et openldap. J'essaie de porter quelqu'un d'autre travail d'un ancien système d'exploitation à CentOS-6 avec openldap-2.4.23. Sur l’ancien OS, une connexion LDAP fonctionnait sans problème. Maintenant, sur CentOS-6, j'obtiens l'erreur suivante lors d'une liaison simple: 

TLS error -8179:Peer's Certificate issuer is not recognized.

Mon /etc/openldap/ldap.conf a une seule ligne:

TLS_CACERTDIR   /etc/openldap/certs

J'ai essayé de commenter cette ligne et de mettre le texte suivant dans le fichier, mais cela n'a pas changé le message d'erreur que j'ai reçu.

tls_reqcert allow

J'ai aussi essayé de ne mettre que la ligne suivante dans ldap.conf mais cela n'a pas changé l'erreur. J'ai essayé ceci sur la base des informations trouvées dans cette question .

LDAPTLS_CACERT  /etc/ssl/certs/ca-bundle.crt

J'ai copié des fichiers dans les répertoires suivants:

/etc/pki/tls/certs/ca.crt

/etc/pki/tls/certs/server.crt

/etc/pki/tls/private/server.key

Je n'ai d'autre choix que d'utiliser openldap-2.4.23. Une idée de ce qui cause cette erreur ou de ce que je peux faire pour résoudre le problème?

Merci d'avance. SP

7
user3748237

Selon http://www.zytrax.com/books/ldap/ch6/ldap-conf.htmlTLS_CACERT doit pointer vers le fichier contenant le CA cert que le client utilisera pour vérifier le certificat. Vous devez vous assurer que l'autorité de certification de vos serveurs [l'autorité de certification ayant signé votre certificat de serveur] est présente dans le fichier pointé par TLS_CACERT [dans votre cas, /etc/ssl/certs/ca-bundle.crt.

4
Yuvika

J'ai eu la même erreur. Dans mon cas, la raison était que mon client avait le mauvais certificat dans /etc/ipa/ca.crt. Pour résoudre ce problème, je viens de copier /etc/ipa/ca.crt du serveur KDC sur le client et l'erreur a disparu.

3
Niko

En fonction de l'environnement, OpenLDAP peut ignorer complètement la valeur définie pour TLS_CACERTDIR, car GnuTLS ne prend évidemment pas en charge ce type de magasin de certificats.

Extrait de la page de manuel de ldap.conf(5)

   TLS_CACERTDIR <path>
          Specifies the path of a directory that contains  Certifi‐
          cate Authority certificates in separate individual files.
          The TLS_CACERT is always used before TLS_CACERTDIR.  This
          parameter is ignored with GnuTLS.

Dans mon cas, je soupçonne que GnuTLS est utilisé, donc TLS_CACERTDIR ne fait tout simplement rien. L'utilisation de TLS_CACERT a indiqué un fichier contenant le certificat de l'autorité de certification de signature de mon serveur semble avoir fait l'affaire.

Je pense que https://serverfault.com/questions/437546/centos-openldap-cert-trust-issues est une réponse beaucoup plus complète.

0