@Snatch87
Битриксоид по принуждению

Как правильно проверять сертификат 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) при отправке запроса сертификат устанавливается в контейнере, но тогда остается вопрос, почему если мы сначала вводим не верный сертификат, а потом верный, то не получаем положительного результата
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dronmaxman
VoIP Administrator
Что обычно проверят
- дату окончания сертификата
- CN должен совпадать с доменным именем к которому идет подключение
- key Usage, что сертификат может использоваться для этого
- AKI сертификата сервера совпадает с SKI сертификата CA, по факту что они подписал второй
- кешируют thumbprint текущего сертификата, что бы проверять когда его обновят или подсунут левый

в форме подключения обычно можно встретить галочку "Игнорировать проблемы сертификата".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы