StartTLS with errors on 2.4.17

Michael Ströder michael at stroeder.com
Mon Sep 14 22:00:53 CEST 2009


Hallo Ralf,

erst mal vielen Dank für Deine Analyse. Sorry for the noise...

Ralf Haferkamp wrote:
> LDAP_OPT_X_TLS macht was ganz anderes. Damit kann man soweit ich das sehe tls 
> aktivieren ohne explizit start_tls() aufzurufen.
> 
> Wenn ich jetzt in dem Testskript, vor dem ldap.initialize Aufruf das hier 
> setze:
> ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT,ldap.OPT_X_TLS_DEMAND)
> Dann schlägt der start_tls_s-Aufruf wie erwartet fehl.

Hmmpf!

Ok, in 2.4.18 sind die ganzen Konstanten ja endlich dokumentiert.

> Das funktioniert aber nur als globale Option. AFAIK ist das so, weil die 
> Bibliothek den TLS context nur einmal global initialisiert, und nicht pro 
> Verbindung.

Das ist für mein multi-threaded web2ldap ziemlich Scheisse. Hatte ich schon
immer als offene Baustelle im Hinterkopf.

> In C kann man den TLS context über LDAP_OPT_X_TLS_NEWCTX neu 
> erzeugen lassen, kann sein, dass es damit auch nach dem ldap_initialize 
> funktionieren würde.

Auch als globale Option?
Habe jetzt mal in python-ldap die Unterstützung für ldap.OPT_X_TLS_NEWCTX
eingebaut. Funktioniert leider nicht, der Return-Code von ldap_set_option()
ist nicht Null. Kann auf die Schnelle nicht sagen, woran das liegt. Hast Du
das in C schon mal ausprobiert?

>> Spricht etwas dagegen in der ldap.conf Deiner Packages den Default-Wert so
>>  zu setzen?
>>
>> TLS_REQCERT     hard
> Der Testaufwand. Wahrscheinlich machen danach einige YaST Module Probleme. 
> Aber prinzipiell wäre es am besten die Option TLS_REQCERT ganz rauszulassen 
> (der default ist ja "hard").

Ja, am besten weglassen, da es ja so viele Komponenten betrifft.

Ciao, Michael.



More information about the python-ldap mailing list