OpenLDAP + iOS 10

 ( szucsati | 2017. január 6., péntek - 13:48 )

Sziasztok!

A CardDAV megoldások (sabre/cardDAV) topic folytatása, LDAP szervert kellene beüzemelnem, amit be tudnak az emberek az iPhone-on állítani, hogy az összes kolléga telefonszámát könnyen elő tudják szedni bármikor. Az OpenLDAP és az iOS is új számomra, de sikerült azért megcsinálni a szervert, megy is, végül sikerült Let's Encrypt tanúsítványt is csinálni hozzá. Szóval elvileg szép és jó a dolog.
Egyetlen probléma, hogy iOS-ben csak jelszó nélkül tudok csatlakozni a szerverhez. Akármilyen módon adom meg a felhasználót, sikertelen a bejelentkezés.

Ha megadom a szervercímet és azt mondom, hogy hajrá, akkor megy. Viszont amint megadok felhasználónevet, SSL hibát dob és azt mondja, hibás a bejelentkezés. A szerveren ezt látom a logban: Failure: no secret in database

Próbáltam a portokkal játszani, mert olvastam, hogy ez gond lehet. Csináltam Let's Encrypt helyett 30 napos Geotrust tanúsítványt. Próbáltam sokféleképpen felvinni a felhasználót, ez sem segített. A fórumok szerint iOS 6 - 7 váltás közben csúszott meg valaki, akkor sokaknál megállt az LDAP működés, de megoldást nem találtam. Más LDAP klienssel jónak tűnik a bejelentkezés.

Gyanítom, hogy valami tanúsítvány, vagy titkosítási hiba lehet, de a gugli nem segít :).

Így konfiguráltam a tanúsítványt:


dn: cn=config
changetype: modify
add: olcTLSCipherSuite
olcTLSCipherSuite: NORMAL
-
add: olcTLSCRLCheck
olcTLSCRLCheck: none
-
add: olcTLSVerifyClient
olcTLSVerifyClient: never
-
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/letsencrypt/live//fullchain.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/letsencrypt/live//cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/letsencrypt/live//privkey.pem
-
add: olcTTLSCACertificatePath
olcTTLSCACertificatePath: /etc/letsencrypt/live//privkey.pem
-
add: olcTLSProtocolMin
olcTLSProtocolMin: 3.3

Van valakinek esetleg valami használható ötlete? Köszönöm!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

olcTTLSCACertificatePath: /etc/letsencrypt/live//privkey.pem

Itt van egy typo a névben, és ez nem is path amúgy. Ja, és _szerintem_ nem is ide kellene mutatnia szerintem, hanem ahol az OS a root cert listát tárolja (/etc/ssl/certs/, /usr/share/ca-certificates, valami ilyesmi). Bár lehet a /etc/letsencrypt/live/ is, ha csak ebben akarsz megbízni.

Illetve a doksi azt írja, a TLSCACertificateFile-ra, hogy "file that contains the certificates of all trusted CA certs". Nem tudom mennyire zavarja meg hogy nem csak CA cert van benne, hanem a te cert-ed is. Én ide a ca.cer-t tenném. Ellenben máshol (nem ldap) tapasztaltam olyat, hogy a fullchain-t kell megadni certificate-nek, nem csak a sima cert.pem-et.

Zavarnak továbbá a dupla per jelek is.

Persze nem biztos hogy ezeknek köze van a nemmenéshez, hiszen auth nélkül megy, gondolom titkosítva, bár egy openssl sclient-es tesztet tolnék rá.

Nincs valami név probléma, ugyanaz az fqdn a cert-ben a cn és a kliensnél beállított is?
Nem lehet, hogy valamelyik oldal (tipp: kliens) kliens cert-et erőltet?
Kliens oldalon kikapcsolva a TLS-t megy?

szerk.: írni akartam de lemaradt: sose csináltam még ilyet, csak tippelgetek, hátha segít.

A dupla / csak itt typo, csak kacsacsőrök közt volt, hogy "domain", és kivette az oldal.

Névprobléma nincs szerintem. Kliens oldali tanúsítványt szerintem nem tud az iOS, legalább erre utaló jelet nem láttam. Először SSL-lel (illetve a jelek szerint TLS-sel, csak SSL-t ír ki) próbálkozik, aztán elvileg megpróbálja nélküle, de úgy auth errort kapot. Szóval se vele se nélküle.

Megpróbálom még megnézni, amit mondtál a trusted rootokkal kapcsolatban hétfőn, racionális ötletnek tűnik! Köszönöm! És nem baj, hogy nem csináltál még ilyet, minden ötlet jól jön :)