Как прослушивать запросы клиентов ldap на порт 636 с помощью unboundid ldap listener

Я создал тестовую среду. У меня есть один клиент ldap, слушатель ldap (как прокси ldap) и сервер ldap. Ldap-клиент отправляет ldap-запросы на ldap-прокси через порт 389 (SSL). Ldap-прокси декодирует запросы ldap и перенаправляет их на сервер ldap через порт 389, И прокси-сервер успешно перенаправляет ответ сервера ldap клиенту ldap.

Я создал сертификат SSL на сервере ldap. И на этот раз я проверил, что клиент ldap отправляет запросы ldap на прокси-сервер ldap через порт 389 (SSL). Прокси-сервер Ldap перенаправил запросы на сервер ldap через порт 636. И прокси-сервер успешно перенаправил ответ сервера ldap клиенту ldap.

Но есть проблема, когда я пытаюсь использовать SSL с обеих сторон. Я имею в виду

Клиент ldap (порт 636) -> прокси-сервер ldap (порт 636) -> Сервер ldap (порт 636)

Мой клиент выбрасывает исключение

javax.net.ssl.SSLHandshakeException: удаленный хост закрыл соединение во время рукопожатия

Я использую unboundid ldap sdk и пример LdapDebugger в качестве прокси-сервера ldap. Как я могу настроить ldaplistener для приема зашифрованных запросов SSL (порт 636)?

заранее спасибо...

1 ответ

Решение

Если вы используете инструмент ldap-debugger, поставляемый с LDAP SDK, в настоящее время он поддерживает только SSL для связи с внутренним сервером, но не при взаимодействии с клиентом. То есть опция "--useSSL" применяется только для связи между отладчиком LDAP и внутренним сервером каталогов, а не между клиентом и отладчиком LDAP. Однако, поскольку это потенциально очень полезная функция, я только что внес ряд изменений, которые добавляют эту возможность, поэтому, если вы извлечете и соберете последнюю версию LDAP SDK, вы обнаружите, что инструмент ldap-debugger имеет новый аргумент "--listenUsingSSL", который контролирует это.

Обратите внимание, что независимо от того, используете ли вы инструмент ldap-debugger или создали свой собственный прослушиватель с помощью кода Java, вы должны убедиться, что у вас есть хранилище ключей Java, которое содержит сертификат SSL, который будет представлен клиентам. Если используемый вами сервер LDAP основан на Java (например, сервер каталогов в памяти, поставляемый с LDAP SDK), то вы, вероятно, уже имеете это. В противном случае вам нужно будет создать его. Если вы просто делаете это в целях тестирования, то самоподписанный сертификат должен подойти (если клиент доверяет ему или настроен для слепого доверия всем сертификатам).

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