Как правильно проверять сертификат CA при подключении к ldap серверу

Столкнулся с проблемой при разработке интеграции с OpenLdap При использовании обычного ldap проблем нет, но они начинаются, когда на openldap стоит обязательное требование TLS

Для работы с ldap использую directorytree/ldaprecord

Кейс примерно следующий:

есть два файла сертификатов:

  1. cert1.crt - действительный rootca с данного сервера ldap
  2. cert2.crt - rootca с другого сервера

если в конфиге подключения я указываю

.....
'use_tls' => true,
'version' => 3,
'follow_referrals' => false,
'options' => [
    LDAP_OPT_X_TLS_CACERTFILE => storage_path('app/tmp/{файл_сертификата}'),
]

если я указываю cert1 - все успешно если меняю на cert2 - так же успешно

перезапускаю контейнер докера и получаю ldap_start_tls(): Unable to start TLS: Connect error меняю обратно на cert1.crt ошибка либо останется, либо будет выскакивать через раз (закономерность не смог выявить)

Почему это проблема: Основной кейс использования данного функционала следующий: Пользователю предоставляется интерфейс для заполнения данных настройки подключения к ldap серверу и кнопка проверить подключение. Не стоит исключать ситуацию, когда в первый раз пользователь приложит не верный сертификат, в таком случае все его дальнейшие проверки нажатия кнопки будут давать не верный результат

Какие вижу варианты:

  1. происходит кэширование - но как я понял в данной библиотеке кэшируются результаты выполнения запросов и это нужно принудительно указывать
  2. при отправке запроса сертификат устанавливается в контейнере, но тогда остается вопрос, почему если мы сначала вводим не верный сертификат, а потом верный, то не получаем положительного результата

Ответы (0 шт):