LDAP-Benutzer suchen basierend auf Zertifikat in der Linux-Kommandozeile
Ich soll zur Suche nach einem Benutzer unter Verwendung von ldapsearch.
Aber Der hosting-provider gegeben, Zertifikat (CA). Ich fügte hinzu, dass das Zertifikat in meinem ldapconf.
Also Vor der Ausführung ldapsearch Befehl, den ich bin mit openssl wie folgt
openssl s_client -connect-hostname -CAfile /Zertifikat.pem -
nachdem Sie eine Verbindung über openssl
Ich bin mit dem ausführen des folgenden Befehls in einem anderen terminal
ldapsearch -h hostname -p portno -D [email protected], dc=global,dc=example,dc=net
Nun möchte ich wissen gibt es eine Möglichkeit das Zertifikat zu verwenden, während der Ausführung ldapsearch Befehl
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte dies machbar sein, indem Sie ausführen:
obwohl, ich würde verwenden:
um sicherzustellen, dass Sie versucht, mit ldaps, eher als Heuristiken.
Wenn Sie Fehler immer noch, Sie können hinzufügen
-ZZ
geben wird, bessere Fehlermeldungen.Einen offensichtlichen gotcha ist mit einem abgelaufenen cert, die zweite offensichtlichste Manko ist die nicht mit dem gleichen Namen in der Anforderung wie haben Sie in der Bescheinigung. Lesen Sie die server-cert mit
openssl s_client -connect hostname:portno
- es wird eine Zeile etwas zu Lesen wie:haben Sie, um sicherzustellen, dass die ldapsearch Anfrage der hostname entspricht der hostname, wie aufgeführt in der
CN=...
Element. Wenn es nicht übereinstimmt, dann werden Sie nicht in der Lage sein zu verbinden (das ist einfach, cert Validierung, ob es alternative Namen, dann können Sie versuchen:openssl x509 -text -noout -in /certificate.pem | grep DNS
)Eine Letzte Einschränkung ist, dass Mac OSX nicht respektieren die
LDAPTLS_CACERT
Umgebungsvariable. Sie importieren das Zertifikat in den Schlüsselbund (ich weiß nicht, einen workaround für OSX in diesem Fall).-ZZ
option, die geben sollten eine bessere debugging-Informationen. Ein typischer Fehler wäre so etwas wieTLS: hostname does not match CN in peer certificate
(d.h. Sie sind nicht mit der gleichen Hostnamen, wie es geliefert wird in der cert). Sie können überprüfen, dass die CN mitopenssl s_client -connect hostname:portno
- check für das Lesen der Zeilesubject=
für dieCN=
, und Sie haben zu verwenden, als den Hostnamen.