Я пытаюсь связать с сервером LDAP с помощью PHP. Это довольно простой процесс, за исключением того, что я не могу обойти ошибку сертификата, которую я получаю. Мои учетные данные являются точными, так как я могу подключиться к серверу с Apache Directory Studio. Есть ли способ просто автоматически принять серверный сертификат? Аналогично тому, как вы нажимаете «Принять этот сертификат …» с помощью студии каталогов Apache? Я знаю, что это не хорошая безопасность, но мне просто нужно заставить ее работать на этом этапе и позже решить проблему сертификации.
благодаря
Вы не указываете среду, так что вот ответ (найденный в другом месте на этом сайте: Как мне решить ldap_start_tls () «Не удалось запустить TLS: Ошибка подключения» в PHP? ):
Linux: на клиентской машине (веб-сервере PHP) измените файл ldap.conf, который используются в системе, в RH / Fedora вам нужен файл /etc/openldap/ldap.conf
( не /etc/ldap.conf
, это для аутентификации системы … ). Добавьте / измените следующую строку:
TLS_REQCERT never
Windows: добавьте переменную системной среды следующим образом:
LDAPTLS_REQCERT=never
Или в вашем PHP-коде перед ldap_connect введите следующее:
putenv('LDAPTLS_REQCERT=never');
Они гарантируют, что экземпляр PHP веб-сервера клиента никогда не проверяет FQDN
сервера на CN
(общее имя) сертификата. Очень полезно в кластерных средах, где используется виртуальный IP и сертификат для этого. Но так как это также делает так, что другие инструменты / приложения во всей ОС на машине веб-сервера также не будут проверять это, пожалуйста, убедитесь, что ваша среда позволяет это изменение (среды с высокой степенью защиты могут не позволить это).
Используйте веб-браузер, укажите на ldaps: // ipaddress /
когда появляется всплывающее окно сертификата, просмотрите сертификат, посмотрите на цепочку сертификатов, найдите доверенный корень (не используемый конкретный сертификат, а не родитель, который его подписал), затем экспортируйте сертификат THAT. Сохранить в формате PEM и B64. (Закодировано Binary и B64).
Затем используйте это, чтобы получить его в формате хранилища ключей PHP, в зависимости от того, что это. Клейсторы Java легки. Не уверен, что использует PHP.