Подскажите, есть ли возможность использовать HAProxy для проксирования запросов от приложения к LDAP серверу? Интересует именно проксирование к ldaps://*
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]
ldapsearch работает. Я получаю результат. Но только при конекте к ldap://
Проблема в том, что приложение должно ходить через HAproxy на ldaps:// . Вот здесь и начинаются проблемы. Мне не нужно никаких сертификатов дополнительно загружать?
А нет необходимости, дополнительно настраивать ssl/tls?
Нет. При работе на транспортном уровне (l4) haproxy тупо поднимает новое соединение к бекенду и пересылает все данные в него. Ничего в них не меняя
Кстати. ldap может работать как с tcp, так и с udp. udp по понятным причинам не будет работать через haproxy. И тем более не будет нормально работать с кубером
как ты умудряешь говорить и запутывать одновременно?
ldap и ldaps это разные вещи! Последнему нужно подкгружать сертификат и ключ. Тебя сотый раз спрашивают, у тебя ldaps где-то уже работает или нет? Потому что в haproxy никаких следов сертификатов не видно.
Другими словами у тебя сертификаты на haproxy должны быть или в самом сервере ldap?
haproxy:636 -> ldap:389
или
haproxy:535 -> ldaps:636
?
В первом случае погружай сертификаты в haproxy, а во втором, настраивай сам openldap на работу через ldaps
Что в логе haproxy (/var/log/haproxy.log) при обращении к нему?
Уберите check у бэкенда - может haproxy его просто держит в состоянии DOWN, не может проверить работоспособность ldap (опять же, что в логе).
поднимите сначала рабочую конфигурацию без кубера, потом переносите
Чот вы все куда-то не туда полезли. Ошибка приложения «Unsupported or unrecognized SSL message», это никак не ругань на сертификат. Я продолжаю верить в то, что указан неправильный бэкенд, потому что читать ответы ТСа довольно тяжело, на телепатию расходуется слишком много маны. Нужно хмуро смотреть, что летит с порта haproxy. Сниффером, openssl s_client'ом, как угодно.
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.
No subject alternative DNS name matching haproxy.test found. Ты подключаешься к хосту haproxy.test, а он предъявляет сертификат, в котором нет этого имени. Конечно, заругается.