我们在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文件中:
GlobalSignRootCA.cer
GlobalSignOrganizationValidationCA-G2.cer
OrganizationValidationCA-SHA256-G2.cer
在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”中添加证书(如上所述),但没有任何效果。
答案 0 :(得分:1)
我找出了为什么会得到上述异常。以上3个.cer文件与Java 1.4.2
不兼容。所以我尝试将我的应用程序指向 Java 1.6
,问题得到了解决。能够从LDAP服务器检索信息。
由于