Hallo, Am Don, 2002-10-31 um 16.42 schrieb Georg Wallner:
Hallo,
Ich versuche gerade den Ldap Server über SSL anzusprechen, aber bei dem Befehl: ldapsearch -H ldaps://server/ -b dc=gera,dc=intern,dc=de -x bekomme ich die
Fehlermeldung: ldap_bind: Can't contact Ldap Server (81)
Wenn du OpenLDAP 2.x benutzt stimmt das alles nicht mehr. ldap:// und ldaps:// ist "depriciated", lies die Doku. ldapsearch -X u:name -ZZ -D"zu bindende dn" server -b "" -s sub "objectclass" "attribut" sollte helfen. Statt -X kann auch eine anderer Mechnismus genommen werden.
In der /var/log/messages gibt es keine Meldungen. In der Datei /etc/openldap/slapd.conf habe ich folgende Einträge nach den Schema-Includes: TLSCertificateFile /etc/openldap/server.pem TLSCertificateKeyFile /etc/openldap/server.pem TLSCACertificateFile /etc/openldap/server.pem
Woher hast du das denn? das kann ja nicht funktionieren :-)
Die Datei server.pem habe ich mit folgendem Befehl erstellt: openssl req -new -x509 -nodes -days 365 -out /etc/openldap/server.pem -keyout /etc/openldap/server.pem
Ich würde dazu CA.pl nehmen. In /usr/share/ssl/misc/ findest du einige Scripts. Kopiere CA.pl oder auch CA.sh nach /etc/openldap. Weiter unten gebe ich dann das Rezept.
.Als cn habe ich den Server angegeben, so wie er mit nslookup 172.21.11.1 erscheint: server.gera.intern.de Hinter de "de" ist noch der Punkt für die "Root". Muß ich diesen Punkt auch mit angeben?
Nein.
Starten tu ich den ldap server über das ldap Startskript mit dem zusätzlichen Eintrag: -h "ldap://0.0.0.0:389/ ldaps://0.0.0.0:639/"
Das ist Quatsch und stammt aus dem letzten Jahrtausend :-)
Ein netstat -apvn zeigt daß, der Server auf beiden Ports horcht.
Wo liegt der Fehler? Muß ich das Zertifikat initialisieren? Wenn ja, wie?
Daa hast zwar vermutlich ein Zertifikat erzeugt, aber nicht signiert. Hier mein Rezept Alles im Verzeichnis /etc/openldap, kannst du auch in einem andern Verzeichnis machen, aber so erleichtert es dir die Arbeit, da das Wurzelverzeichnis /etc/openldap ist. ./CA.pl -newca damit erzeugt du ein Certifcate of Authority, dies wird vermutlich in /etc/openldap/demoCA/cacert.pem abgelegt. Die Fragen kannst du beantworten wie du möchtest, nur sinnvoll sollten sie sein. ./CA.pl -newreq die einzige wichtige Angabe ist jetzt den FQN des Servers Name anzugeben ./CA.pl -signreq damit wird dein newcert.pem signiert openssl rsa -in newreq.pem -out ldapkey.pem damit wird das Passwort aus newreq.pem entfernt mv newcert ldapcert.pem Jetzt hast du in demoCA/cacert.pem und im Wurzelverzeichnis ldapcert.pem und ldapkey.pem In slapd.conf TLSCertificateFile /etc/openldap/ldapcert.pem TLSCertificateKeyFile /etc/openldap/ldapkey.pem TLSCACertificateFile /etc/openldap/demoCA/cacert.pem Natürlich kannst du andere Verzeichnisse und ander Dateinamen nehmen, da bist du frei. Jetzt noch als Anwender im Verzeichnis /etc/openldap CA.pl -newreq hier ist es wichtig, daß du als Name den vollen Distinguished Name nimmst, mit dem du im DIT verzeichnet bist. ./CA.pl -signreq und wieder openssl rsa -in newreq.pem -out ldapclient-key.pem mv newcert.pem ldapclient-cert.pem mkdir /home/anwender/certs oder eine ähnliche Bezeichnung mv ldapclient-cert.pem /home/anwender/certs/ mv ldapclient-key.pem /home/anwender/certs/ Eine Datei ~/.ldaprc erzeugen, mit folgendem Inhalt TLS_CERT /home/anwender/certs/ldapclient-cert.pem TLS_KEY /home/anwender/certs/ldapclient-key.pem In /etc/openldap/ldap.conf ssl start_tls TLS_CACERT /etc/openldap/demoCA/cacert.pem TLS_CERT /etc/openldap/ldapcert.pem TLS_KEY /etc/openldap/ldapkey.pem Jetzt wird über Port 389 eine SSL/TLS Verbindung hergestellt. Wenn ud jetzt noch den debugging Modus -d 7 einschaltest, kannst du sehen, daß SASL nun auch einen weiteren Mechanismus EXTERN einschaltet. Testen kannst du das alles auch noch z.B. openssl s_client -connect server:389 -showcerts Oder im Verzeichnis /etc/openldap openssl verify -CAfile demoCA/cacert.pem ldapcert.pem Es gibt natürlich auch noch die große Diskussion, den Port 639 für TLS zu nutzen, aber das würde hier zu weit führen. -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter@schevolution.com http://www.schevolution.com/tour