LDAP через TLS с инфраструктурой Spring

Мы разработали приложение Java для интеграции пользователей LDAP с помощью Spring. Это работает, когда приложение подключается к серверу LDAP по LDAP (ldap://openldap:389). Я столкнулся с проблемой при подключении к серверу LDAP через TLS (ldaps://openldap:636).

Окружающая обстановка:

Установлена ​​виртуальная машина сервера TurnKey Open Ldap

Генерируется новый самоподписанный сертификат. Он используется как в приложении Java, так и на сервере LDAP.

Исключение:

Caused by: org.springframework.ldap.CommunicationException: simple bind failed: openldap:636; nested exception is javax.naming.CommunicationException: simple bind failed: openldap:636 [Root exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching openldap found]

Следующее исключение возникает, когда встроенный сертификат, связанный с готовой Open Ldap VM, используется в приложении Java.

org.springframework.ldap.CommunicationException: simple bind failed: openldap:636; nested exception is javax.naming.CommunicationException: simple bind failed: openldap:636 [Root exception is java.net.SocketException: Connection or outbound has closed]


person Arunachalam Sibisakkaravarthi    schedule 03.02.2021    source источник


Ответы (1)


Это проблема с корневым сертификатом. Я импортировал неправильный сертификат CA в cacerts. Основная причина в том, что мы искали неправильное место для конфигурации сертификата в TurnKey open ldap. Сертификаты найдены в /etc/ldap/tls, но мы неправильно посмотрели в /etc/ssl/private

Это работает после импорта ca_cert.pem из /etc/ldap/tls в cacerts на стороне клиента.

person Arunachalam Sibisakkaravarthi    schedule 04.02.2021