LDAP kliens SSL

Innen: KIFÜ Wiki

A legtöbb esetben az egyetlen feladat, hogy a "megbízható" CA-k adatait megadjuk. Erre sajnos alkalmazásonként más-más módszert kell használni.

OpenSSL

# cd /etc/ssl/certs
# wget http://www.directory.niif.hu/niif_ldap_ca.pem
# ln -s niif_ldap_ca.pem `openssl x509 -hash -in niif_ldap_ca.pem -noout`.0

A legutolsó paranccsal "bízunk meg" az NIIF LDAP CA-ban.

Próba:

$ openssl verify niif_ldap_ca.pem
niif_ca_root_x509.pem: OK

OpenLDAP

Az OpenLDAP-nak vagy felhasználónként a ~/.ldaprc fájlban, vagy a központi konfigurációs állományban adjuk meg a megbízható CA-kat. Ezek pl. itt lehetnek:

  • /etc/ldap/ldap.conf (Debian)
  • /etc/openldap/ldap.conf (RHEL)
  • /usr/local/etc/openldap/ldap.conf (FreeBSD)

Javasolt tartalom:

TLS_CACERTDIR   /etc/ssl/certs
TLS_REQCERT     demand

Próba:

$ ldapsearch -x -H ldaps://directory.iif.hu -b o=niif,c=hu -s base -LLL dn -v
ldap_initialize( ldaps://directory.iif.hu )
filter: (objectclass=*)
requesting: dn
dn: o=NIIF,c=HU

Apache

Ahhoz, hogy a mod_ldap modul SSL-en keresztül tudjon kapcsolódni az LDAP szerverhez, szükség van az LDAPTrustedCA direktíva használatára. Ez a direktíva csak a szerver konfigban értelmezhető, tehát a httpd.conf vagy az apache2.conf-ba kell tenni.

Az Apache 2.2-ben már nincs meg ez a direktíva. A tapasztalat szerint működik az SSL-es LDAP kapcsolat, ha a fenti pontok beállításait (OpenLDAP, OpenSSL) elvégeztük. A megbízható CA-k megadásához az LDAPTrustedGlobalCert direktíva használható.

Az SSL-es LDAP lekérdezést (mindkét esetben) úgy tudjuk használni, ha az AuthLDAPURL paramétere után ldaps:// URI-t alkalmazunk.

További információ

Java

A Java VM alapértelmezetten a $JRE_HOME/lib/security/cacerts fájlban keresi a megbízható CA-kat.

Új megbízható CA hozzáadása a keystore-ba:

root@idp:/usr/jdk# ./bin/keytool -import -trustcacerts -alias "niifldapca" -file /tmp/niif_ldap_ca.pem \
-keystore ./jre/lib/security/cacerts 
Enter keystore password: changeit
Owner: CN=National Information Infrastructure Development Program CA, O=NIIF, C=HU
Issuer: CN=National Information Infrastructure Development Program CA, O=NIIF, C=HU
Serial number: 1
Valid from: Mon Sep 02 01:00:00 CEST 2002 until: Fri Sep 02 01:00:00 CEST 2022
Certificate fingerprints:
        MD5:  9C:FD:1C:85:50:56:59:54:EE:63:2B:98:F4:C9:38:72
        SHA1: 8A:F5:FB:C1:EA:58:F6:D3:B8:4D:3B:3A:76:39:E8:76:4F:DD:07:54
        Signature algorithm name: SHA1withRSA
        Version: 3

Extensions:

#1: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
 DigitalSignature
 Key_CertSign
 Crl_Sign
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[   
 CA:true
 PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 0C D6 26 D4 2F BA C9 B4   DD 25 B8 1E CF EF ED 5B  ..&./....%.....[
0010: 9F D2 94 F9                                        ....
]
]

#4: ObjectId: 2.16.840.1.113730.1.1 Criticality=false
NetscapeCertType [
  SSL CA
  S/MIME CA
  Object Signing CA]

#5: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 0C D6 26 D4 2F BA C9 B4   DD 25 B8 1E CF EF ED 5B  ..&./....%.....[
0010: 9F D2 94 F9                                        ....
]

]

Trust this certificate? [no]:  yes
Certificate was added to keystore

Jelszó: changeit (ez a default Java keystore password)

Tomcat

???