Нужна помощь в игнорировании сертификата сервера при привязке к серверу LDAP с использованием PHP

Я пытаюсь привязать к серверу LDAP с помощью PHP. Это довольно простой процесс, за исключением того, что я не могу обойти ошибку сертификата, которую я получаю. Мои учетные данные в порядке, так как я могу подключиться к серверу с помощью Apache Directory Studio. Есть ли способ просто автоматически принять сертификат сервера? Подобно тому, как вы нажимаете "Принять этот сертификат.." в студии каталогов Apache? Я знаю, что это не очень хорошая безопасность, но мне просто нужно, чтобы он работал на этом этапе и мог бы решить проблему с сертификатом позже.

Спасибо

2 ответа

Решение

Вы не указываете среду, поэтому вот ответ (найденный в другом месте на этом сайте: Как мне решить 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. (Бинарный и B64 кодированный).

Затем используйте это, чтобы получить его в формате хранилища ключей PHP, в зависимости от того, что есть. Склады ключей Java просты. Не уверен, что использует PHP.

Другие вопросы по тегам