Abbiamo bisogno di connettere il nostro script php a LDAP su tls usando un certificato. La connessione LDAP funziona bene senza tls. Maggiori dettagli qui https://stackoverflow.com/questions/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend
Siamo riusciti a connetterci tramite tls da Windows utilizzando Softerra LDAP Browser. 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 rilasciato un certificato di tipo .cer. Proviene da una macchina Windows Exchange. Da quello che posso vedere SLES supporta i certificati .pem. Quindi la mia domanda è...
D1:Devo convertire da .cer a .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 . Nota che sul server SLES dobbiamo connetterci a diversi server LDAP.
Al momento se corriamo
ldapsearch -H ldaps://localhost:9215 -W
otteniamo
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 occhi Once 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 settembre 2012 13:14:42) $
[email protetta]:/usr/src/packages/BUILD/openldap-2.4.26 /clients/tools
(libreria LDAP:OpenLDAP 20426)
Risposta accettata:
Ciò significa che il certificato sul server è scaduto o non è valido.
Per quanto riguarda la soluzione alternativa, utilizzare il LDAPTLS_REQCERT
variabile per ignorare il certificato, ad es.:
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 puoi importare il certificato e contrassegnarlo come attendibile.