openLDAP ssl/tls Centos 6.3

Pavel Lisy pavel.lisy na tmapy.cz
Pondělí Březen 10 15:03:06 CET 2014


Kateřina Bubeníčková píše v Po 10. 03. 2014 v 11:55 +0100:
> DD,
> snažím se rozběhnout $subj, vyzkoušela jsem už asi 6 návodů, stále to
> nejede a mám nějaké nejasnosti...
> 
> # ldapsearch -x -ZZ -d3 -b 'dc=mydomain,dc=cz' -H ldaps://localhost
> ...
> tls_read: want=5, got=0
> 
> TLS: error: tlsm_PR_Recv returned 0 - error 21:Is a directory
> TLS: error: connect - force handshake failure: errno 21 - moznss error -5938
> TLS: can't connect: TLS error -5938:Encountered end of file.
> ldap_err2string
> ldap_start_tls: Can't contact LDAP server (-1)
>     additional info: TLS error -5938:Encountered end of file
> ------
> 
> Z toho jsem pochopila, že potřebuju certifikáty moznss.
> 
> 1. postup
> podle
> http://linuxserverathome.com/articles/installing-and-configuring-openldap-2423-centos-63
> 
> Protože už se snažím nějakou dobu, vygenerovala jsem db znovu pomocí
> 
> #/usr/libexec/openldap/create-certdb.sh

> [root na test-LDAP certs]# certutil -d ./ -L
> 
> Certificate Nickname                                         Trust
> Attributes
> 
> SSL,S/MIME,JAR/XPI
> 
> OpenLDAP Server                                              CTu,u,u
> ----------------------------
> 
> /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif
> olcTLSCACertificatePath: /etc/pki/tls/certs
> olcTLSCertificateKeyFile: "OpenLDAP Server"
> olcTLSCertificateFile: /etc/openldap/certs/password
> --------
> nebo
> [root na test-LDAP certs.bk]# certutil -d /etc/openldap/certs.bk/ -L
> 
> Certificate Nickname                                         Trust
> Attributes
> 
> SSL,S/MIME,JAR/XPI
> CA certificate                                               CTu,u,u
> OpenLDAP Server                                              u,u,u
> -------
> a ještě mám jednu další variantu, a nic z toho
> nefunguje. Ale nevím, co znamená CTU,u,u, a jestli ta databáze obsahuje
> všechno, co má.

Nevím, zda OpenLDAP použije tento typ úložiště / tento formát
certifikátů, já ve verzi 2.4 používám jiné.

> Zkusila bych třeba http://www.bradchen.com/blog/2012/08/openldap-tls-issue,
> ale zase u prvního příkazu nevím, co to mám napsat jako  "My Issuer",
> jestli je to někde důležité.
> 
> 
> 
> 2.postup:
> Podle
> http://unixadminschool.com/blog/2013/04/rhel-6-3-ldap-series-part-4-troubleshooting/#
> bych měla vygenerovat hash z certifikátů, pochopila jsem, že certifikát pro
> tento účel by měl být bez passphrase (s parametrem -nodes)
> 
> Ale po mnoha předchozích pokusech jsem se dostala do problému, že vlastně
> nevím, kde mám kořenový certifikát, zda jich náhodou nemám víc, který klíč
> patří ke kterému certifikátu, zda to mám generovat v adresáři  /etc/pki/CA
> nebo /etc/pki/tls.
> 
> Server je na virtuálu klonovaný ze serveru, na kterém běží jen openLDAP,
> takže ho můžu klidně smazat a naklonovat znovu nebo nainstalovat od nuly....
> 
> Návodů na vygenerování certifikátu je spousta, jenže vždycky tam něco
> chybí, nebo nerozumím nějakému malému detailu.
> 
> U tohoto postupu tedy nevím: co se stane s kořenovým certifikátem při
> klonování - je to problém?
> Jak poznám kořenový certifikát, že je to kořenový certifikát -
> nejpravděpodobněji vypadá
> /etc/pki/tls/certs/ca-bundle.crt
> nebo /etc/pki/tls/certs/ca-bundle.trust.crt

Kořenový certifikát je ten, který byl použitý ke generování certifikátu
pro LDAP server

já mám v konfiguraci:
/etc/openldap24/slapd.conf

TLSCACertificateFile /etc/pki/tls/certs/firma.cz-SSLca.pem
TLSCertificateFile /etc/pki/tls/certs/ldapserver.firma.cz-SSLserver.crt
TLSCertificateKeyFile /etc/pki/tls/private/ldapserver.firma.cz-SSLserver.key


> jenže při generování certifikátu pro openldap jsem myslím ca nepsala
> 
> 
> /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif
> olcTLSCACertificateFile: /etc/pki/tls/certs/ca-bundle.crt
toto možná zafunguje, pokud je vlastní CA do tohoto souboru vložen
(nevím to jistě)

> olcTLSCACertificatePath: /etc/pki/tls/certs.bk2
toto je špatně, tam má být adresář, ve kterém jsou soubory s certifikáty
navíc je to varianta k předcházejícímu, čili použít jedno nebo druhé

> olcTLSCertificateFile: /etc/pki/tls/certs.bk2/ldap1_privkey.pem
> olcTLSCertificateKeyFile: /etc/pki/tls/certs.bk2/ldap1_privkey.key.pem
Toto vypadá OK

> --------
> ls -l /etc/pki/tls/certs.bk2
> 
> Výše uvedené taky nefunguje.
> 
> Klíče jsem generovala podle
> http://easylinuxtutorials.blogspot.cz/2013/11/installing-configuring-openldap-server.html
> ,
> tam neuvádějí, že by bylo potřeba parametry
> olcTLSCACertificateFile:
> olcTLSCACertificatePath:
> ---tak jsem tyto parametry zaremovala
> 
> ale zato jsem podle tohoto návodu přidala do /etc/openldap/ldap.conf
> # enable on-the-fly configuration (cn=config)
> database config
> access to *
>         by
> dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
>         by * none
> 
> # enable server status monitoring (cn=monitor)
> database monitor
> access to *
>         by
> dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
>         by dn.exact="cn=Manager,dc=example,dc=com" read //upraveno dle
> potřeby
>         by * none
> ---------
> je to potřeba?
> 
> 
> Který postup je správný? (1. nebo 2.)
> 
> výsledek je zatím  pořád stejný:
> openssl s_client -connect localhost:636 -showcerts
> CONNECTED(00000003)
> 139897046730568:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake
> failure:s23_lib.c:177:
> ---
> no peer certificate available
> ---
> No client certificate CA names sent
> ---
> SSL handshake has read 0 bytes and written 263 bytes
> ---
> New, (NONE), Cipher is (NONE)
> Secure Renegotiation IS NOT supported
> Compression: NONE
> Expansion: NONE
> --------------------
> 
> 
> 
> Předem díky za každou radu,
> 
> Kateřina
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux

-- 
Pavel Lisy <pavel.lisy na tmapy.cz>



Další informace o konferenci Linux