2016-01-11 92 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進行連接。

相關問題