Wie man ldapsearch unter Verwendung des Zertifikats auf SLES über tls arbeiten lässt?

12

Wir müssen unser PHP-Skript mit einem Zertifikat über tls mit LDAP verbinden. LDAP-Verbindung funktioniert gut ohne tls. Weitere Informationen finden Sie unter /programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend

Wir haben es geschafft, mit dem Softerra LDAP Browser eine Verbindung über tls von Windows aus herzustellen. Es hat uns gebeten, ein Zertifikat zu installieren und ob wir ihm vertrauen.

Mein Endergebnis ist, in der Lage zu sein, sich mit LDAP unter Verwendung von TLS von PHP aus zu authentifizieren. Ich habe ein Zertifikat vom Typ .cer erhalten. Es stammt von einem Windows Exchange-Computer. Soweit ich weiß, unterstützt SLES .pem-Zertifikate. Also meine Frage ist ...

F1: Muss ich zuerst von .cer nach .pem konvertieren, bevor ich das Zertifikat auf dem Client (dem SLES-Server) installieren kann ? F2 : Wie kann ich dieses Zertifikat am besten auf dem Server installieren, damit meine PHP-Anwendung es kann? greifen Sie darauf zu und erledigen Sie seine Arbeit . Beachten Sie, dass wir auf dem SLES-Server eine Verbindung zu verschiedenen LDAP-Servern herstellen müssen.

Zur Zeit, wenn wir rennen

ldapsearch -H ldaps://localhost:9215 -W

wir bekommen

Enter LDAP Password: 
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)

Ich habe hier viele gute Informationen gefunden http://www.php.net/manual/de/function.ldap-connect.php#36156 und besonders dieser Satz ist in meinen Augen wichtigOnce you've gotten the ldapsearch tool working correctly PHP should work also.


  • SUSE Linux Enterprise Server 11 (x86_64)
  • ldapsearch: @ (#) $ OpenLDAP: ldapsearch 2.4.26 (26. September 2012, 13:14:42 Uhr) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (LDAP-Bibliothek: OpenLDAP 20426)
Radek
quelle
Eine alternative Möglichkeit zum Debuggen besteht darin, den LDAP-Teil zu ignorieren und sich nur das SSL anzusehen: Sie können "openssl s_client -connect localhost: 9215" ausführen, um das vom Server verwendete Zertifikat und die Überprüfungsergebnisse auszuspucken.
Kowh
IN ORDNUNG. Ich werde es an den Entwickler weitergeben. Ich persönlich verstehe immer noch nicht, wie ich das Zertifikat installiere und es ist mit einem Server verbunden, wenn ich darauf zugreifen möchte.
Radek

Antworten:

24

Das bedeutet, dass das Zertifikat auf dem Server abgelaufen oder ungültig ist.

Verwenden Sie für die Problemumgehung die LDAPTLS_REQCERTVariable, um das Zertifikat zu ignorieren, z.

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)"

Andernfalls können Sie das Zertifikat importieren und als vertrauenswürdig markieren.

Kenorb
quelle
Funktioniert auch auf Cygwin, wo keine ldap.confDatei zum Einstellen des TLS_REQCERTParameters vorhanden war.
bvj
7

Ich bin mir nicht sicher, ob die Konvertierung von pem nach cer möglich ist, aber um ldapsearch zu verwenden, sollten Sie Zertifikate ohne ldap.conf oder ohne die Berechtigung zum Ändern globaler Zertifikate verwenden können:

env LDAPTLS_CACERT=/path/to/cert ldapsearch
basteln
quelle
0

Verwenden

LDAPTLS_REQCERT=never

Entfernt die Zertifikatüberprüfung des LDAP-Servers. Dies macht die von TLS bereitgestellte Sicherheit in erster Linie ungültig. Mach das nicht. Sie sollten die Zertifikate reparieren, wenn ein Problem vorliegt, und dann dem LDAP-Client die von tink beschriebene Zertifizierungsstelle zur Verfügung stellen.

returntosender404
quelle