2016-01-11 87 views
0

我试图用openLDAP客户端连接到包含ApacheDS服务器的Java应用程序。服务器配置良好,我测试过使用不同的客户端(ldapbrowser,jxplorer)。随着OPENLDAP我能够连接到普通LDAP端口,但是当我试图连接到LDAPS端口或使用TLS我也总是相同的消息:OpenLDAP客户端无法使用SSLv2连接到ApacheDS服务器?

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握手消息?

你有什么想法,该怎么解决?

谢谢!

+0

如果服务器配置良好,问题可能是您的Java客户端,但强制SSL2不是操作过程。确保Java客户端使用TLS 1.0及更高版本;而不是SSLv3及以上版本(就像Java想要的那样)。另请参阅[哪些密码套件启用SSL套接字?](http://stackoverflow.com/a/23365536/608639)。它向您展示如何调整协议和密码套件。 – jww

回答

0

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

TLS_PROTOCOL_MIN 3.3

那失踪线。现在我可以通过SSLv3和TLS进行连接。

相关问题