我在 Solaris 机器上有一个 sun LDAP 服务器,我的 Web 应用程序可以通过 389 端口连接到 LDAP。现在我想使用 636 端口通过 SSL 连接到 LDAP。在我的 LDAP 服务器中,我已经安装了证书。现在,我使用 LDAP 服务器中的密钥导出了证书,以便可以将此证书用于我的 Web 应用程序。在同一台机器上,我的 glassfish 服务器也安装了。我将证书复制到 /usr/java/jre/lib/security/ 文件夹中。现在在我的 Web 应用程序中,我使用此代码通过 sll 连接到 LDAP,但它无法连接到 LDAP。
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
ht.put(Context.PROVIDER_URL,"ldap://ldapserver:636");
ht.put(Context.SECURITY_AUTHENTICATION, "EXTERNAL");
// ht.put(Context.SECURITY_AUTHENTICATION, "simple");
System.setProperty("javax.net.ssl.keyStore","/usr/java/jre/lib/security/cert");
System.setProperty("javax.net.ssl.keyStorePassword",certpass);
ht.put(Context.SECURITY_PRINCIPAL,binddn);
// Specify SSL
ht.put(Context.SECURITY_PROTOCOL, "ssl");
ht.put(Context.SECURITY_CREDENTIALS,bindpass);
我究竟做错了什么?请纠正我。