【发布时间】:2016-09-13 13:57:54
【问题描述】:
我们在 WebSphere 8.5 上部署了需要通过 ssl 与 LDAP 通信的 Web 服务。仅当 ldap 证书导入 JRE cacerts 存储时,ssl 通信才有效。
对于我们使用的其他服务,可以从控制台将证书导入 CellDefaultTrustStore,但是仅通过在 CellDefaultTrustStore 中将控制台上的证书导入 LDAP 通信不起作用。
是否需要特定配置才能避免使用 cacerts ?感谢您在这方面的任何帮助。
这里是建立LDAP连接的代码sn-p [变量名更新]
Hashtable env = new Hashtable();
env.put(DirContext.SECURITY_AUTHENTICATION, "simple");
env.put(DirContext.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_PRINCIPAL, bindUserName);
env.put(Context.SECURITY_CREDENTIALS, bindPassword);
// this is the url with ldaps://hostname
env.put(Context.PROVIDER_URL, url);
DirContext dirContext = new InitialDirContext(env);
【问题讨论】:
-
LDAP 是指服务器安全设置中的注册表配置,还是您自己从应用程序代码连接到 LDAP?
-
对,这和注册表无关。作为 Web 服务业务逻辑的一部分,我们的应用程序正在连接到一个单独的 ldap。
-
添加一段建立 ssl 连接的代码,因为您可能正在手动覆盖一些 ssl 属性。
-
添加了代码 sn -p ... 变量名修改