Benutzer-Werkzeuge

Webseiten-Werkzeuge


rhel:ldap-ssl

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
rhel:ldap-ssl [2011/09/20 11:00] – [konfiguration redhat linux] jenadrhel:ldap-ssl [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-===== php, python (zope,plone) und ldaptools mit tls zum ldapserver ===== 
-==== konfiguration redhat linux ==== 
- 
-ohne Zertprüfung: 
- 
-folgende option zum configfile /etc/openldap/ldap.conf hinzufügen: 
- 
-<code>TLS_REQCERT never</code> 
- 
-debug probleme bei php: 
- 
-php-option für ldap, die ich vor das erste ldap-connect eingefügt habe: 
- 
-<code>ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);</code> 
- 
-in der logdatei vom webserver findet sich dann folgendes (wenn TLS_REQCERT noch nicht auf 'never' steht): 
- 
-<code> 
-TLS trace: SSL_connect:before/connect initialization 
-TLS trace: SSL_connect:SSLv2/v3 write client hello A 
-TLS trace: SSL_connect:SSLv3 read server hello A 
-TLS certificate verification: depth: 0, err: 20, 
-subject: /C=DE/ST=Thuringia/L=Schmalkalden/O=FH Schmalkalden/OU=IuK- 
-Zentrum/CN=postfix.fh-schmalkalden.de, 
-issuer: /C=DE/ST=Thuringia/L=Schmalkalden/O=Fachhochschule 
-Schmalkalden/OU=IuK-Zentrum/CN=CA2 FH Schmalkalden/emailAddress=ca@fh- 
-schmalkalden.de 
-TLS certificate verification: Error, unable to get local issuer 
-certificate 
-</code> 
- 
- 
-Schalter Z für TLS! 
- 
-==== Installation IUK-Wurzelzertifikat ==== 
- 
-Prüfe die folgenden Einstellungen in /etc/openldap/ldap.conf 
-<code> 
-  # Legt das Verzeichnis fest, indenen nach CA Zertifikaten gesucht wird 
-  TLS_CACERTDIR /etc/openldap/cacerts 
-  # Legt fest, das ohne ein Zertifikat, oder bei falschem Zertifkat die Verbindung abgebrochen wird 
-  TLS_REQCERT   hard</code> 
- 
-Das iuk2ca.crt-Zertifikat muss nach /etc/openldap/cacerts/iukca2.crt 
-kopiert werden. 
-Mit 
- 
-<code> 
-  openssl x509 -subject_hash -noout -in iukca2.crt</code> 
- 
-wenn -subject_hash nicht unterstützt wird dann mit 
- 
-<code> 
- openssl x509 -hash -noout -in iukca2.crt</code> 
- 
-wird der Subject-Hash angezeigt, z.B. 3e4202dc, mit 
- 
-<code> 
-  ln -s iukca2.crt 3e4202dc.0</code> 
- 
-wird ein entsprechender Symlink angelegt. 
- 
-ACHTUNG: punkt-null nicht vergessen, der symlink lautet also <hash>.0 und nicht <hash>! 
- 
-Nun kann man mit 
- 
-<code> 
-  openssl s_client -connect ldap.fh-schmalkalden.de:636 -CApath /etc/openldap/cacerts</code> 
- 
-prüfen, ob eine SSL-Verbindung hergestellt werden kann. 
-Dann kann mit 
- 
-<code> 
- ldapsearch -Z -H ldap://ldap.fh-schmalkalden.de -b "ou=students,dc=fh-sm,dc=de" -x "(uid=...)"</code> 
- 
-eine Abfrage erfolgen (natuerlich eine sinnvolle uid einsetzen). 
- 
-erfolgeich, nachdem ich das ".0" beim hash ergänzt habe. [[[[Benutzer:Jenad|Jenad]] 15:07, 25. Okt 2007 (CEST)]] 
- 
-aber python: 
- 
-<code> 
- ldap.SERVER_DOWN: {'info': 'TLS: hostname does not match CN in peer certificate', 'desc': "Can't contact LDAP server"}</code> 
- 
-d.h. wir müssen mit dem namen connecten der im zert drinsteht, also in diesem fall mit postfix.fh-schmalkalden.de 
-> 
- 
-<code> 
- >>> a=ldap.initialize('ldaps://postfix.fh-schmalkalden.de') 
- >>> a.search('dc=fh-sm,dc=de',2,'cn=jens*') 
- 1</code> 
- 
-Bingo!! 
- 
-====  quellcode php  ==== 
- 
-Bei php muß der apache neu gestartet werden. Die Paramater in /etc/openldap/ldap.conf werden wohl nur einmalig beim start des apache eingelesen. 
- 
- 
-<code php> 
-<?php 
-#   zur fehlersuche: 
-#  ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 
- 
-$ds=ldap_connect($ldaphost); 
-# da ist so im ldap-connect, es wird immer true geliefert, auch wenn der 
-# host nicht erreichbar ist, deshalb noch ein anonymer bind hinterher: 
-$rr=ldap_bind($ds); 
-  # echo ldap_error($ds); 
- 
-  # nur wenn bind oben erfolgreich (server ist erreichbar): 
-if ($rr) { 
-  ## tls einschalten: 
-  if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) { 
-       error_log ("Failed to set LDAP Protocol version to 3, TLS not 
-        supported.",0); 
-  } 
-  if (!ldap_start_tls($ds)) { 
-      error_log ("Ldap_start_tls failed",0); 
-  } 
-  #echo ldap_error($ds); 
-  # mache irgendwas ...... 
-  # programmcode .... 
-  # bool ldap_unbind ( resource link_identifier ) 
-  if (!ldap_unbind($ds)) { 
-      echo "Verbindung zum LDAP Server konnte nicht getrennt werden"; 
-  } 
- 
-} 
-else { 
- 
-   echo "Verbindung zum LDAP Server nicht möglich"; 
-} 
-?> 
-</code> 
  
rhel/ldap-ssl.1316509213.txt.gz · Zuletzt geändert: 2024/08/07 13:35 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki