Come far funzionare ldapsearch su SLES su tls usando il certificato?


12

Dobbiamo collegare il nostro script php a LDAP su tls usando un certificato. La connessione LDAP funziona bene senza tls. Maggiori dettagli qui /programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend

Siamo riusciti a connetterci tramite tls da Windows utilizzando il browser LDAP Softerra. Ci ha chiesto di installare un certificato e se ci fidiamo di esso.

Il mio risultato finale è essere in grado di autenticarmi con LDAP usando TLS da php. Mi è stato dato un certificato di tipo .cer. Viene da un computer Windows Exchange. Da quello che posso vedere SLES supporta i certificati .pem. Quindi la mia domanda è ...

Q1: Devo convertire da .cer in .pem prima di poter installare il certificato sul client (che è il server SLES) e infine Q2: qual è il modo migliore per installare questo certificato sul server in modo che la mia applicazione php possa accedervi e fare il suo lavoro . Si noti che sul server SLES è necessario connettersi a diversi server LDAP.

Al momento se corriamo

ldapsearch -H ldaps://localhost:9215 -W

noi abbiamo

Enter LDAP Password: 
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)

Ho trovato molte buone informazioni qui http://www.php.net/manual/de/function.ldap-connect.php#36156 e soprattutto questa frase è importante ai miei occhiOnce you've gotten the ldapsearch tool working correctly PHP should work also.


  • SUSE Linux Enterprise Server 11 (x86_64)
  • ldapsearch: @ (#) $ OpenLDAP: ldapsearch 2.4.26 (26 set 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (libreria LDAP: OpenLDAP 20426)

Un modo alternativo per eseguire il debug è ignorare la parte LDAP e guardare semplicemente SSL: è possibile eseguire "openssl s_client -connect localhost: 9215" per sputare il certificato utilizzato dal server e i risultati della convalida.
Kowh,

OK. Lo passerò allo sviluppatore. Personalmente ancora non capisco come installo il certificato ed è collegato a un server quando voglio accedervi.
Radek,

Risposte:


25

Ciò significa che il certificato sul server è scaduto o non è valido.

Per quanto riguarda la soluzione alternativa, utilizzare la LDAPTLS_REQCERTvariabile per ignorare il certificato, ad esempio:

LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"

Altrimenti è possibile importare il certificato e contrassegnarlo come attendibile.


Funziona anche su cygwin dove non esisteva un ldap.conffile esistente per impostare il TLS_REQCERTparametro.
bvj

8

Non sono sicuro della conversione da pem a cer, ma per fare in modo che ldapsearch utilizzi certs senza un ldap.conf o senza i permessi per modificare i certs globali dovresti essere in grado di farlo:

env LDAPTLS_CACERT=/path/to/cert ldapsearch

1

utilizzando

LDAPTLS_REQCERT=never

rimuove la convalida del certificato del server LDAP. Ciò annulla in primo luogo la sicurezza fornita da TLS. Non farlo È necessario correggere i certificati in caso di problemi, quindi fornire al client LDAP l'autorità di certificazione come descritto da tink.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.