Hallo Dieter Schon wieder ich :-))
Kennt jemand ein gutes (und wenn möglich deutsches) HOWTO für die Nutzung von TLS in OpenLDAP. Vor allem interessiert mich, wie ich einen zertifizierten Schlüssel für meine Maschine herstellen muss.
http://www.openldap.org suche dort mal nach dem TLS/SSL Howto. Die Kurzfassung: benutze das CA.pl script von openssl,das befindet sich, glaube ich, unter /usr/share/openssl/misc
Ich habe gestern mit Hilfe von http://www.openldap.org/faq/data/cache/185.html die drei Schlüssel erzeugt, die ich nach /etc/openldap kopiert haben und in sldap.conf eingetragen habe: TLSCACertificateFile /etc/openldap/cacert.pem TLSCertificateFile /etc/openldap/servercrt.pem TLSCertificateKeyFile /etc/openldap/serverkey.pem
1. CA.pl -newca Hab ich gemacht. Dann
openssl req -new -nodes -keyout newreq.pem -out newreq.pem Entspricht das deinem:
2. CA.pl .newreq
darauf CA.pl -sign was dem da gleicht:
3. CA.pl signreq
Schritt 4 ist in der obigen Anleitung ausgelassen:
4. openssl rsa -in newreq.pem -out ldapkey.pem
In der Anleitung sind die Namen anders:
5. mv newcert.pem ldapcert.pem
Hab ich nicht gemacht:
CA.pl -verfiy ldapcert.pem
Als Common Name (CN) in newreq mußt du den voll qualifizierten Hostnamen deines Ldap-Hosts angeben.
Bei Common Name habe ich immer schola.ksobwalden.ch angegeben.
Jetzt hast du drei Zertifikate, ein cacert.pem ein ldapcert.pem und ldapkey.pem. cacert.pem ist deine Certificate Authority, dieses Zertifikat mußt du auf jeden Host deines Systems kopieren und allen Clients in /etc/openldap/ldap.conf bekannt machen.
Hier liegen zwei ldap.conf: eines in /etc/openldap, das recht kurz ist und ein längeres in /etc. Du meinst schon das erste? Wie sag ich ihm, wo cacert.pem liegt? Ich lasse den LDAP-Server auf der gleichen Maschine laufen (schola.ksobwalden.ch), auf der auch Samba und die Benutzerverwaltung für Unix läuft. Ich brauche ihn nicht unbedingt, dachte mir aber, ich sei mit ihm für zukünftige Ausbauten besser gerüstet. Wenn ich jetzt mit der obigen Konfiguration mittels: ldapsearch -x -ZZ -v -d3 die Verbindung testen will, so erhalte ich (am Schluss): TLS certificate verification: depth: 0, err: 20, subject: /C=CH/ST=Switzerland/L=Sarnen/O=Kantonsschule/OU=Informatik/CN=schola.ksobwa lden.ch/emailAddress=beda@ksobwalden.ch, issuer: /C=CH/ST=Switzerland/L=Sarnen/O=Kantonsschule/OU=Informatik/CN=schola.ksobwa lden.ch/emailAddress=beda@ksobwalden.ch TLS certificate verification: Error, unable to get local issuer certificate tls_write: want=7, written=7 0000: 15 03 01 00 02 02 30 ......0 TLS trace: SSL3 alert write:fatal:unknown CA TLS trace: SSL_connect:error in SSLv3 read server certificate B TLS trace: SSL_connect:error in SSLv3 read server certificate B TLS: can't connect. ldap_perror ldap_start_tls: Connect error (91) additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Was bedeutet das? Kann es etwas damit zu tun haben, dass ich als erstes Element in LDAP nur ksobwalden.ch (die Domäne) eingegeben habe und nicht schola.ksobwalden.ch (den Rechner). dn: dc=ksobwalden,dc=ch objectClass: dcObject objectClass: organization o: KSOW dc: ksobwalden description: Kantonsschule Obwalden structuralObjectClass: organization entryUUID: 02a2908e-06fe-1028-91d2-dab7bb287ad6 creatorsName: cn=Manager,dc=ksobwalden,dc=ch createTimestamp: 20040310164457Z entryCSN: 2004031016:44:57Z#0x0001#0#0000 modifiersName: cn=Manager,dc=ksobwalden,dc=ch modifyTimestamp: 20040310164457Z Gruss und Dank Beda