如何解决LDAP over TLS 与 Spring 框架
我们开发了一个 Java 应用程序来使用 Spring 集成 LDAP 用户。 当应用程序在 LDAP(ldap://openldap:389) 上连接 LDAP 服务器时,它会起作用。 我在通过 TLS(ldaps://openldap:636) 连接 LDAP 服务器时遇到问题。
环境:
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]
在 Java 应用程序中使用 Turnkey Open Ldap VM 中捆绑的内置证书时,会引发以下异常
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]
解决方法
这是根证书问题。我将错误的 CA 证书导入到 cacert 中。 根本原因是我们在 TurnKey open ldap 中查看了错误的证书配置位置。 在 /etc/ldap/tls 中找到的证书,但我们错误地查看了 /etc/ssl/private
在客户端将 ca_cert.pem 从 /etc/ldap/tls 导入到 cacerts 后工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。