openLDAP ssl/tls Centos 6.3

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pátek Březen 14 16:09:06 CET 2014


On Fri, 14 Mar 2014, Katerina Bubenickova wrote:

> 296		ssl = tls_imp->ti_session_new( ctx, is_server );
> (gdb)
> 297		if ( ssl == NULL ) {
> (gdb)
> 298			Debug( LDAP_DEBUG_ANY,"TLS: can't create ssl
> handle.\n",0,0,0);

Pozoruhodné je, že tuto hlášku to do logu nezapsalo. Ne že by byla tak 
užitečná, ale demonstruje to, že je v logování ladících hlášení nějaká 
chyba.

Ale je mi nějaké nepovědomé. Tady jsem totiž viděl kód, který zjišťoval, 
jaká chyba nastala, a pak ho zalogoval... jestli náhodou není problém
v tom, že podle subjectu provozujete "CentOS 6.3", zatímco aktuální je 
6.5.

Je otázka, zda by nestálo za pokus nejdřív aktualizovat a vyzkoušet, zda 
to nezačne fungovat.

> Zdá se, že při prvním pokusu o ldapsearch je
> PR_GetError() = -12285

-12285 je SSL_ERROR_NO_CERTIFICATE

"Unable to find the certificate or key necessary for authentication."

This error has many potential causes; for example:
- Certificate or key not found in database.
- Certificate not marked trusted in database and Certificate's issuer not
   marked trusted in database.
- Wrong password for key database.
- Missing database.

Zdá se, že problém je opravdu v inicializaci, kdy se z nějakého důvodu 
nepodaří načíst klíče a certifikáty z databáze, ačkoli podle provedeného 
pokusu s programem selfserv by db měla být použitelná...

Teď mne ale napadá, že vlastně ten selfserv fungovat neměl, protože 
privátní klíč měl být zašifrovaný heslem v pwdfile.txt, o kterém 
selfservu nikdo neřekl. Jestli nebude chyba v tom, že tam ho heslo
není, ale slapd ho zkouší a tak mu to nefunguje? Můžete ten selfserv 
zkusit spustit ještě jednou a přidat k parametrům
"-f /etc/openldap/certs/pwdfile.txt"?

> při opakovaném ldapsearch pak
> PR_GetError() = -5925

Tato hodnota je PR_CALL_ONCE_ERROR.

"The one-time function was previously called and failed. Its error code is 
no longer available"

Evidentně se při prvním spojení pokusí něco inicializovat, to selže a dál 
už to nezkouší.

Možná by se dalo zkusit se podívat do tlsm_deferred_ctx_init (jmenuje-li 
se to ve Vaší verzi stejně), kde by se měla provádět uvedená inicializace.
Aspoň by z toho mohlo jít poznat, který krok přesně selže.

-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /


Další informace o konferenci Linux