【问题标题】:OpenLDAP client cannot connect to ApacheDS server using SSLv2?OpenLDAP 客户端无法使用 SSLv2 连接到 ApacheDS 服务器?
【发布时间】:2016-01-11 11:07:23
【问题描述】:

我正在尝试使用 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 握手消息?

你有什么想法,如何解决这个问题?

谢谢!

【问题讨论】:

  • 如果服务器配置良好,问题可能出在您的 Java 客户端上,但强制 SSL2 不是行动的过程。确保 Java 客户端使用 TLS 1.0 及更高版本;而不是 SSLv3 及更高版本(就像 Java 想做的那样)。另见Which Cipher Suites to enable for SSL Socket?。它向您展示了如何调整协议和密码套件。

标签: java apache openssl openldap apacheds


【解决方案1】:

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

TLS_PROTOCOL_MIN 3.3

那是缺线。现在我可以通过 SSLv3 和 TLS 进行连接了。

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多