Як змусити ldapsearch працювати над SLES над tls за допомогою сертифіката?


12

Нам потрібно підключити наш php-скрипт до LDAP через tls за допомогою сертифіката. Підключення LDAP прекрасно працює без tls. Детальніше тут /programming/15260252/how-to-use-multiple-tls-certificate-for-ldap-from-php-zend

Нам вдалося підключитися через tls з Windows за допомогою браузера Softerra LDAP. Він попросив встановити сертифікат і чи ми йому довіряємо.

Мій кінцевий результат - мати можливість автентифікувати LDAP за допомогою TLS від php. Мені видали сертифікат типу .cer. Походить з машини Windows Exchange. Як я бачу, підтримує SLES сертифікати .pem. Отже, моє запитання ...

Q1: Чи потрібно мені конвертувати спочатку .cer до .pem, перш ніж я можу встановити сертифікат на клієнті (який є сервером SLES) і, нарешті, Q2: який найкращий спосіб встановити цей сертифікат на сервер, щоб моя програма php могла отримати доступ до нього та виконувати свою роботу . Зауважте, що на сервері SLES нам потрібно підключитися до різних серверів LDAP.

В даний час, якщо ми біжимо

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

ми отримуємо

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)

Тут я знайшов багато корисної інформації http://www.php.net/manual/de/function.ldap-connect.php#36156, і особливо це речення важливе для моїх очей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 вересня 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (бібліотека LDAP: OpenLDAP 20426)

Альтернативний спосіб налагодження - ігнорувати частину LDAP і просто подивитися на SSL: Ви можете запустити "openssl s_client -connect localhost: 9215", щоб виплюнути cert, який використовує сервер та результати перевірки.
Ков

ГАРАЗД. Я передаю це розробнику. Я все ще особисто не розумію, як я встановлюю сертифікат і він пов'язаний із сервером, коли я хочу отримати доступ до нього.
Радек

Відповіді:


25

Це означає, що сертифікат на сервері минув або він недійсний.

Щодо вирішення проблеми, використовуйте LDAPTLS_REQCERTзмінну, щоб ігнорувати сертифікат, наприклад:

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

В іншому випадку ви можете імпортувати сертифікат і позначити його як довірений.


Працює і на cygwin, де не було жодного ldap.confфайлу для встановлення TLS_REQCERTпараметра.
bvj

8

Я не впевнений у перетворенні з pem в cer, але щоб змусити ldapsearch використовувати certs без наявності ldap.conf або без дозволів на зміну глобальних certs, ви повинні це зробити:

env LDAPTLS_CACERT=/path/to/cert ldapsearch

1

Використання

LDAPTLS_REQCERT=never

видаляє перевірку сертифікатів сервера LDAP. Це в першу чергу скасовує безпеку, яку надає TLS. Не робіть цього. Ви повинні виправити сертифікати, якщо є проблема, а потім надати клієнту LDAP повноваження сертифікатів, як описано в tink.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.