【问题标题】:Cannot establish LDAP SSL connection from WebLogic 12 using UnboundID SDK无法使用 UnboundID SDK 从 WebLogic 12 建立 LDAP SSL 连接
【发布时间】:2014-11-10 01:48:24
【问题描述】:

我正在使用 WLS 12.1.3.0.0 中运行的 Java EE 6 应用程序中的 UnboundID LDAP SDK 与 LDAP 服务器交互。一切都在开放的连接下工作。

当尝试使用从 WLS SSLContext 获得的 WLS SSLSocketFactory 建立安全的 LDAPConnection 时,LDAPConnection 超时,没有更多有用的调试信息。 LDAP 服务器上的证书由 Verisign 颁发。

错误是:

LDAPException(resultCode=91 (connect error), errorMessage='尝试连接服务器 XXXX:1636 时出错:java.io.IOException: 无法在配置的超时时间内建立到服务器 XXXX:1636 的连接60000 毫秒。')

我是否正确地从 WLS 获取 SSLSocketFactory?

SSLContext sslContext = SSLContext.getInstance("https");
SSLSocketFactory sslFactory = sslContext.getSocketFactory();
ldapConn = new LDAPConnection(sslFactory,configBean.getLdapHost(),
                              configBean.getLdapPort(),configBean.getLdapBindDN(),
                              configBean.getLdapPassword());

【问题讨论】:

    标签: jakarta-ee ssl ldap weblogic12c unboundid-ldap-sdk


    【解决方案1】:

    我同意,这似乎不是 SSL 错误。您可以启用 ATN 调试标志以获取更多详细信息:

    -Dweblogic.debug.DebugSecurityAtn=true -Dweblogic.log.StdoutSeverity=Debug -Dweblogic.log.RedirectStdoutToServerLogEnabled=true -Dweblogic.log.RedirectStderrToServerLogEnabled=true
    

    【讨论】:

      【解决方案2】:

      该消息表明应用程序无法在给定端口上与指定服务器建立 TCP 连接。您是否知道是否存在某种防火墙或其他机制可能会阻止连接尝试或导致流量被丢弃?这很容易测试,只需尝试在相同的地址和端口上创建一个新的 Socket。如果尝试为该地址和端口创建一个简单的 TCP 套接字失败,则表明问题不在 LDAP SDK 范围内。

      虽然如果在 SSL 协商期间出现问题,我预计会出现不同的失败,但您可以尝试通过使用 new SSLUtil(new TrustAllTrustManager()).createSSLSocketFactory() 创建套接字工厂来排除这种情况。这将盲目信任服务器提供的任何证书。如果可行,则表明问题在于 SSLContext.getInstance("https") 正在创建一个在协商中某处失败的上下文。

      如果没有其他帮助,您可以尝试在 LDAP SDK 中启用调试(请参阅 com.unboundid.util.Debug 类),看看是否提供了任何有用的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多