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

时间:2016-01-11 11:07:23

标签: java apache openssl openldap apacheds

我尝试使用openLDAP客户端连接到包含ApacheDS服务器的Java应用程序。服务器配置得很好,我已经测试过使用不同的客户端(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,但服务器响应是相同的。 我在ApacheDS配置选项中没有看到启用SSLv2(只有SSLv3和3个TLS)。

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

TLS_PROTOCOL_MIN 3.3

那是缺失的。现在我可以通过SSLv3和TLS连接。