LINUX.ORG.RU

Ответ на: комментарий от AVL2

Я пытаюсь это сделать и получаю ошибку.

ERROR 1 — [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.ldap.CommunicationException: simple bind failed: haproxy.test:4343; nested exception is javax.naming.CommunicationException: simple bind failed: haproxy.test:4343 [Root exception is javax.net.ssl.SSLException: Unsupported or unrecognized SSL message]] with root cause javax.net.ssl.SSLException: Unsupported or unrecognized SSL message at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:451) ~[na:na] at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) ~[na:na] at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) ~[na:na]

mochkass88
() автор топика
Ответ на: комментарий от mochkass88

я бы для начала отложил джаву и попробовал подключаться обычным клиентом ldapsearch

ну а в целом можно только догадываться, чего ты хочешь достичь.

Попробуй сформулировать задачу, поймешь как решать.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

ldapsearch работает. Я получаю результат. Но только при конекте к ldap://

Проблема в том, что приложение должно ходить через HAproxy на ldaps:// . Вот здесь и начинаются проблемы. Мне не нужно никаких сертификатов дополнительно загружать?

mochkass88
() автор топика
Ответ на: комментарий от AVL2

тут ldaps на порту 4343 сидит? И работает?

  • При запросе напрямую, с приложения, работает. Да, на 4343

Коннект к ldap - я проверял на другом сервере. Меня интересовала именно работоспособность прокси

Сам HAproxy обитает в кубере. И оттуда, должны летель запросы

mochkass88
() автор топика
Ответ на: комментарий от mochkass88

Коннект к ldap - я проверял на другом сервере.

Шютник

А нет необходимости, дополнительно настраивать ssl/tls?

Нет. При работе на транспортном уровне (l4) haproxy тупо поднимает новое соединение к бекенду и пересылает все данные в него. Ничего в них не меняя

Кстати. ldap может работать как с tcp, так и с udp. udp по понятным причинам не будет работать через haproxy. И тем более не будет нормально работать с кубером

Убедись, что ldap клиент использует именно tcp

router ★★★★★
()
Ответ на: комментарий от mochkass88

как ты умудряешь говорить и запутывать одновременно?

ldap и ldaps это разные вещи! Последнему нужно подкгружать сертификат и ключ. Тебя сотый раз спрашивают, у тебя ldaps где-то уже работает или нет? Потому что в haproxy никаких следов сертификатов не видно.

Другими словами у тебя сертификаты на haproxy должны быть или в самом сервере ldap?

haproxy:636 -> ldap:389

или

haproxy:535 -> ldaps:636

?

В первом случае погружай сертификаты в haproxy, а во втором, настраивай сам openldap на работу через ldaps

AVL2 ★★★★★
()
Ответ на: комментарий от mochkass88

Что в логе haproxy (/var/log/haproxy.log) при обращении к нему? Уберите check у бэкенда - может haproxy его просто держит в состоянии DOWN, не может проверить работоспособность ldap (опять же, что в логе).

поднимите сначала рабочую конфигурацию без кубера, потом переносите

keir ★★
()
Ответ на: комментарий от AVL2

Сейчас это работает так: application –> ldaps://ldap-host:4343

Необходимо сделать, чтобы было следующее: application –> haproxy-host:4343 -> ldaps://ldap-host:4343

Судя по всему, у меня первый вариант. Мне нужны сертификаты

Сможете подсказать или дать ссылку на эту настройку? У меня нет доступа к самому LDAP серверу

mochkass88
() автор топика
Ответ на: комментарий от mochkass88

да нет, вариант номер 2.

Сертификаты уже загружены в ldap-host и все там работает.

application –> ldaps://ldap-host:4343

на текущий момент должен работать ldapsearch ldaps://ldap-host:4343

Сертификаты только переделать и перезалить, добавив в cn haproxy-host и все с ними.

вместо haproxy можно просто добавить dnat c haproxy-host на ldap-host

ну или на haproxy минимальный tcp proxy настроить.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

Проблема в том, что haproxy работает в kubernetes. Какой же тогда cn haproxy-host надо добавлять в сертификаты?

TCP прокси настроен так:

frontend front
bind *:4343
option tcplog
mode tcp
default_backend web

backend web
mode tcp
server ldap host:4343 check

mochkass88 (07.02.2023 16:48:15 +02:00)

mochkass88
() автор топика
Ответ на: комментарий от mochkass88

В сертификате прописан cn, это хост, по которому отвечает сервер.

Посмотри наверх, там написано https://www.linux.org.ru а в сертификате прописано грубо говоря CN=linux.org.ru и CN=www.linux.org.ru

Вот по этим именам он валидный. Вот и у тебя там должен быть хост ldap и хост haproxy

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

Чот вы все куда-то не туда полезли. Ошибка приложения «Unsupported or unrecognized SSL message», это никак не ругань на сертификат.
Я продолжаю верить в то, что указан неправильный бэкенд, потому что читать ответы ТСа довольно тяжело, на телепатию расходуется слишком много маны.
Нужно хмуро смотреть, что летит с порта haproxy. Сниффером, openssl s_client'ом, как угодно.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 2)
Ответ на: комментарий от thesis

Теперь имею такую проблему(

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.ldap.CommunicationException: simple bind failed: haproxy.test:6363] with root cause java.security.cert.CertificateException: No subject alternative DNS name matching haproxy.test found.

mochkass88
() автор топика