OpenLDAP 客户端无法使用 SSLv2 连接到 ApacheDS 服务器?

OpenLDAP client cannot connect to ApacheDS server using SSLv2?

我正在尝试连接到我的 Java 应用程序,该应用程序包含带有 openLDAP 客户端的 ApacheDS 服务器。服务器配置良好,我已经使用不同的客户端(ldapbrowser、jxplorer)进行了测试。使用 openLDAP,我可以连接到常规的 ldap 端口,但是当我尝试连接到 ldaps 端口或使用 TLS 时,我总是收到相同的消息:

TLS trace: SSL_connect:before/connect initialization
TLS trace: SSL_connect:SSLv2/v3 write client hello A
TLS trace: SSL3 alert read:fatal:unexpected_message
TLS trace: SSL_connect:error in SSLv2/v3 read server hello A
TLS: can't connect: error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message.

我的申请给了我一个例外:

WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Unexpected exception forcing session to close: sending disconnect notice to client.

之后:

 javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled

我试图在 java 中强制启用 sslv2,但服务器响应是相同的。 我还没有在启用 SSLv2 的 ApacheDS 配置选项中看到(只有 SSLv3 和 3 TLS)。

与tls OpenLDAP 连接是否可能需要SSLv2 消息?我找不到如何禁用它的方法。还是 Apache 的问题,它无法识别 TLS 握手消息?

你有什么想法,如何解决?

谢谢!

我找到了在 OpenLDAP 客户端中禁用 SSLv2 的方法。我在 ldaprc 文件中添加了最小协议版本:

TLS_PROTOCOL_MIN 3.3

那是漏掉的一行。现在我可以通过 SSLv3 和 TLS 进行连接了。