Jak sprawić, by ldapsearch działał na SLES przez tls za pomocą certyfikatu?


12

Musimy połączyć nasz skrypt php z LDAP przez tls za pomocą certyfikatu. Połączenie LDAP działa dobrze bez tls. Więcej szczegółów tutaj /programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend

Udało nam się połączyć przez tls z Windows za pomocą Softerra LDAP Browser. Poprosił nas o zainstalowanie certyfikatu i czy mu ufamy.

Moim wynikiem końcowym jest możliwość uwierzytelnienia przy użyciu LDAP przy użyciu TLS z php. Otrzymałem certyfikat typu .cer. Pochodzi z komputera z systemem Windows Exchange. Z tego, co widzę, SLES obsługuje certyfikaty .pem. Więc moje pytanie brzmi ...

Q1: Czy muszę najpierw przekonwertować z .cer na .pem, zanim będę mógł zainstalować certyfikat na kliencie (którym jest serwer SLES), a na koniec Q2: jaki jest najlepszy sposób na zainstalowanie tego certyfikatu na serwerze, aby moja aplikacja php mogła uzyskać do niego dostęp i wykonać swoją pracę . Pamiętaj, że na serwerze SLES musimy połączyć się z różnymi serwerami LDAP.

Obecnie jeśli będziemy biegać

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

dostajemy

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)

Znalazłem wiele dobrych informacji tutaj http://www.php.net/manual/de/function.ldap-connect.php#36156, a zwłaszcza to zdanie jest ważne w moich oczachOnce 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 września 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (biblioteka LDAP: OpenLDAP 20426)

Alternatywnym sposobem debugowania jest zignorowanie części LDAP i po prostu spójrz na SSL: Możesz uruchomić „openssl s_client -connect localhost: 9215”, aby wypluć certyfikat, którego używa serwer i wyniki sprawdzania poprawności.
Kowh

DOBRZE. Przekażę to deweloperowi. Nadal osobiście nie rozumiem, w jaki sposób instaluję certyfikat i jest on połączony z serwerem, gdy chcę uzyskać do niego dostęp.
Radek

Odpowiedzi:


25

Oznacza to, że certyfikat na serwerze wygasł lub jest nieważny.

Jeśli chodzi o obejście, użyj LDAPTLS_REQCERTzmiennej, aby zignorować certyfikat, np .:

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)"

W przeciwnym razie możesz zaimportować certyfikat i oznaczyć go jako zaufany.


Działa również na cygwinie, gdzie nie istniał żaden ldap.confplik do ustawienia TLS_REQCERTparametru.
bvj

8

Nie jestem pewien co do konwersji z pem na cer, ale aby ldapsearch używał certyfikatów bez pliku ldap.conf lub bez uprawnień do modyfikacji globalnych certyfikatów, powinieneś być w stanie to zrobić:

env LDAPTLS_CACERT=/path/to/cert ldapsearch

1

Za pomocą

LDAPTLS_REQCERT=never

usuwa sprawdzanie poprawności certyfikatu serwera LDAP. To przede wszystkim unieważnia bezpieczeństwo zapewniane przez TLS. Nie rób tego W razie problemu należy naprawić certyfikaty, a następnie dostarczyć klientowi LDAP urząd certyfikacji zgodnie z opisem w tink.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.