Hallo zusammen, ich möchte ein ldapsearch gegen einen LDAP-Server mit einem 'ungüligen' Zertifikat machen. (unbekannte CA und Hostname passt nicht) Per LDAP-Browser geht das. Ich muß halt bestätigen, dass das Zertifikat akzeptiert werden soll. Anschließend ist alles kein Problem Per cli und ldapsearch geht das aber nicht. Ich finde keine Möglichkeit dass das Zertifikat akzeptiert wird. Wo muss ich hingucken damit ich die Lösung finde? Bernd -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Thu, 16 Aug 2012 14:32:24 +0200 schrieb Bernd Nachtigall <bnacht@web.de>:
Hallo zusammen,
ich möchte ein ldapsearch gegen einen LDAP-Server mit einem 'ungüligen' Zertifikat machen. (unbekannte CA und Hostname passt nicht)
Per LDAP-Browser geht das. Ich muß halt bestätigen, dass das Zertifikat akzeptiert werden soll. Anschließend ist alles kein Problem
Per cli und ldapsearch geht das aber nicht. Ich finde keine Möglichkeit dass das Zertifikat akzeptiert wird.
Wo muss ich hingucken damit ich die Lösung finde?
Sieh dir die TLS OPTIONS in man ldap.conf(5) an. TLS_REQCERT never, sollte die Lösung sein, wenn auch nicht zu empfehlen. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:DA147B05 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Sonntag, 26. August 2012 schrieb Dieter Klünter:
Am Thu, 16 Aug 2012 14:32:24 +0200
schrieb Bernd Nachtigall <bnacht@web.de>:
Hallo zusammen,
ich möchte ein ldapsearch gegen einen LDAP-Server mit einem 'ungüligen' Zertifikat machen. (unbekannte CA und Hostname passt nicht)
Per LDAP-Browser geht das. Ich muß halt bestätigen, dass das Zertifikat akzeptiert werden soll. Anschließend ist alles kein Problem
Per cli und ldapsearch geht das aber nicht. Ich finde keine Möglichkeit dass das Zertifikat akzeptiert wird.
Wo muss ich hingucken damit ich die Lösung finde?
Sieh dir die TLS OPTIONS in man ldap.conf(5) an. TLS_REQCERT never, sollte die Lösung sein, wenn auch nicht zu empfehlen.
-Dieter
Yepp, das sieht so aus, aber es hilft nicht weiter ;-) Das hatte ich schon drin, allerdings mit einigen anderen Optionen. Jetzt habe ich im Arbeitsverzeichnis eine neue, minimale ldaprc angelegt und die Variablen $LDAPNOINIT und $LDAPCONF gesetzt. Beim Aufruf mit -d 3 erhalte ich die Meldung: "Error, self signed certificate in certificate chain" Das möchte ich aber nicht als Fehler verstanden wissen. Ich weiss ja, das die CA eine selbst gebaute ist. Und das ist gut so und kein Fehler ;-) Vor der Fehlermeldung kommt noch die Meldung: "TLS certification verification: depth: 1," ... und zwar egal ob TLS_REQCERT auf 'never' oder auf 'allow' steht. Was könnte ich noch versuchen? (Ausser das Root-Zertifikat lokal abzulegen ;-) Bye Bernd PS: siehst Du das auch so, dass das Verhalten von openldap hier evtl. fehlerhaft ist? -------------------------------------------------- Bitte nur der Liste antworten, danke -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Mon, 27 Aug 2012 09:45:21 +0200 schrieb Bernd Nachtigall <bnacht@web.de>:
Am Sonntag, 26. August 2012 schrieb Dieter Klünter:
Am Thu, 16 Aug 2012 14:32:24 +0200
schrieb Bernd Nachtigall <bnacht@web.de>:
Hallo zusammen,
ich möchte ein ldapsearch gegen einen LDAP-Server mit einem 'ungüligen' Zertifikat machen. (unbekannte CA und Hostname passt nicht)
Per LDAP-Browser geht das. Ich muß halt bestätigen, dass das Zertifikat akzeptiert werden soll. Anschließend ist alles kein Problem
Per cli und ldapsearch geht das aber nicht. Ich finde keine Möglichkeit dass das Zertifikat akzeptiert wird.
Wo muss ich hingucken damit ich die Lösung finde?
Sieh dir die TLS OPTIONS in man ldap.conf(5) an. TLS_REQCERT never, sollte die Lösung sein, wenn auch nicht zu empfehlen.
-Dieter
Yepp, das sieht so aus, aber es hilft nicht weiter ;-)
Das hatte ich schon drin, allerdings mit einigen anderen Optionen. Jetzt habe ich im Arbeitsverzeichnis eine neue, minimale ldaprc angelegt und die Variablen $LDAPNOINIT und $LDAPCONF gesetzt. Beim Aufruf mit -d 3 erhalte ich die Meldung: "Error, self signed certificate in certificate chain" Das möchte ich aber nicht als Fehler verstanden wissen. Ich weiss ja, das die CA eine selbst gebaute ist. Und das ist gut so und kein Fehler ;-)
Das ist wird auch nicht mit einem Abbruch beendet, sondern danach wird die CA zur Kalkulation des Keys beim Handshake benötigt.
Vor der Fehlermeldung kommt noch die Meldung: "TLS certification verification: depth: 1," ... und zwar egal ob TLS_REQCERT auf 'never' oder auf 'allow' steht.
Aber das führt ja auch noch nicht zu Abbruch der Verbindung. Ich gehe mal davon aus, dass du OpenLDAP als Server benutzt, hast du da die Möglichkeit, slapd mit -d3 und -h "ldap:/// ldaps:///" zu starten? Kannst du dann mal die wichtigen tls Zeilen posten, nicht die Zeilen, wo die Zertifikate gelesen werden. Mich interessiert insbesondere der Handshake.
Was könnte ich noch versuchen? (Ausser das Root-Zertifikat lokal abzulegen ;-)
OpenLDAP ist da nicht fehlerhaft, sondern setzt RFC-2246 bzw. 4346 um, insbesondere 6.1 Connection States und 7. TLS Handshaking. Die einfachste Möglichkeit ist, die CA in der ldaprc einzubinden, falls du das noch nicht gemacht hast. Mit welchen Parametern rufst du ldapsearch auf? -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:DA147B05 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Montag, 27. August 2012 schrieb Dieter Klünter: (...)
Aber das führt ja auch noch nicht zu Abbruch der Verbindung. Ich gehe mal davon aus, dass du OpenLDAP als Server benutzt, hast du da die Möglichkeit, slapd mit -d3 und -h "ldap:/// ldaps:///" zu starten? Kannst du dann mal die wichtigen tls Zeilen posten, nicht die Zeilen, wo die Zertifikate gelesen werden. Mich interessiert insbesondere der Handshake. Kein openLDAP, da ist ein eDir hinter.
Ich werde mal einen Trace der LDAP Anfrage machen.
Was könnte ich noch versuchen? (Ausser das Root-Zertifikat lokal abzulegen ;-)
(...)
Die einfachste Möglichkeit ist, die CA in der ldaprc einzubinden, falls du das noch nicht gemacht hast. Genau das wollte ich eigentlich nicht. Die Verbindung ist nur sporadisch und ich weiss ja, das es sich nicht um eine bekannte CA handelt.
Mit welchen Parametern rufst du ldapsearch auf?
Mit vielen ;-) #ldapsearch -d 1 -H ldaps://localhost:10636 -Z -D "cn=admin,o=org" -W -b "o=org" -s sub -a always -z 1000 "(objectClass=inetOrgPerson)" "telephoneNumber" "objectClass" Wenn das Ding so störrisch ist, werde ich mir wohl doch das Root-Zertifikat holen und es local ins Arbeitsverzeichnis kopieren. Mich wurmt halt nur, das die Suche in einem LDAP-Browser geht. Der meldet einen Zertifikatsfehler und lässt einem die Wahl das Zertifikat trotzdem zu akzeptieren. Bye Bernd -------------------------------------------------- Bitte nur der Liste antworten, danke -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Mon, 27 Aug 2012 14:41:00 +0200 schrieb Bernd Nachtigall <bnacht@web.de>:
Am Montag, 27. August 2012 schrieb Dieter Klünter:
(...)
Aber das führt ja auch noch nicht zu Abbruch der Verbindung. Ich gehe mal davon aus, dass du OpenLDAP als Server benutzt, hast du da die Möglichkeit, slapd mit -d3 und -h "ldap:/// ldaps:///" zu starten? Kannst du dann mal die wichtigen tls Zeilen posten, nicht die Zeilen, wo die Zertifikate gelesen werden. Mich interessiert insbesondere der Handshake. Kein openLDAP, da ist ein eDir hinter.
Ich werde mal einen Trace der LDAP Anfrage machen.
Was könnte ich noch versuchen? (Ausser das Root-Zertifikat lokal abzulegen ;-)
(...)
Die einfachste Möglichkeit ist, die CA in der ldaprc einzubinden, falls du das noch nicht gemacht hast. Genau das wollte ich eigentlich nicht. Die Verbindung ist nur sporadisch und ich weiss ja, das es sich nicht um eine bekannte CA handelt.
Das spielt keine Rolle, ich verwende häufiger (auch bei großen Kunden) private CA's, die müssen nur im lokalen Netz verfügbar gemacht werden.
Mit welchen Parametern rufst du ldapsearch auf?
Mit vielen ;-)
#ldapsearch -d 1 -H ldaps://localhost:10636 -Z -D "cn=admin,o=org" -W -b "o=org" -s sub -a always -z 1000 "(objectClass=inetOrgPerson)" "telephoneNumber" "objectClass"
Mich wundert, dass du da eine Verbindung bekommst :-) ldaps:// ist OK, dann darf aber kein -Z benutzt werden. Hintergrund: ldaps wird über Port 636 bzw. bei dir Port 10636 initiiert, -Z führt startTLS über Port 389 aus, eigentlich sollte da der Error Code 2, protocolError kommen. Kurz ldaps und -Z gehen nicht zusammen.
Wenn das Ding so störrisch ist, werde ich mir wohl doch das Root-Zertifikat holen und es local ins Arbeitsverzeichnis kopieren.
Mich wurmt halt nur, das die Suche in einem LDAP-Browser geht. Der meldet einen Zertifikatsfehler und lässt einem die Wahl das Zertifikat trotzdem zu akzeptieren.
Das ist etwas anderes, der LDAP-Browser führt vermutlich kein StartTLS aus, sondern macht direkt ein Connect auf den Secure Port. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:DA147B05 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (2)
-
Bernd Nachtigall
-
Dieter Klünter