LDAP访问 - javax.naming.CommunicationException:简单绑定失败

时间:2015-06-01 10:37:58

标签: java ldap ssl-certificate keystore

我们在LDAP SHA-256迁移后遇到连接LDAP服务器的问题。当我们在调试模式下运行我们的应用程序时,我们得到了以下异常:

  javax.naming.CommunicationException: simple bind failed: xxxamd.xxx.com:636 [Root exception is java.net.SocketException: Socket is closed]​

我们尝试将以下.cer文件添加到我们的应用程序特定的cacerts文件中:

  1. GlobalSignRootCA.cer

  2. GlobalSignOrganizationValidationCA-G2.cer

  3. OrganizationValidationCA-SHA256-G2.cer

  4. 在cacerts中添加上述.cer文件后,我们得到了不同的异常:

    getLdapContactInfo(): javax.naming.CommunicationException: simple bind failed: xxxamd.xxx.com:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Certificate signature validation failed]
    

    服务器:

      

    Perl Web Farm服务器

    Java版:

    xxxxx@yyyy:~/www $ java -version
    
    java version "1.4.2_19"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
    Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode)
    

    非常感谢任何有关这方面的帮助或建议。

    注意:SUN JRE已在服务器级实现,而我们的应用程序是{JARR}在/cgi-bin/文件夹下。我们尝试在/usr/lib/jvm/jre/lib/security/下的“cacerts”中添加证书(如上所述),但没有任何效果。

1 个答案:

答案 0 :(得分:1)

我找出了为什么会得到上述异常。以上3个.cer文件与Java 1.4.2不兼容。所以我尝试将我的应用程序指向 Java 1.6 ,问题得到了解决。能够从LDAP服务器检索信息。

由于