我尝试从 ldap 迁移到 ldaps 以进行登录 validator 。
在adapter.xml中
<property name="ldapURL" defaultValue="ldap://10.10.10.10:10636" displayName="The LDAP Server URL"/>
在LoginAuthenticator类中
env.put(Context.SECURITY_PROTOCOL, "ssl");
我收到以下错误。
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我不知道我需要将 keystore 放在 LDAPS 协议(protocol)中的哪里。你能帮我吗?
我尝试将其通过 server.xml 配置放在以下路径中,但没有成功。
E:\MobileFirst-8.0.0.0\mfp-server\usr\servers\mfp\resources\security
<sslDefault sslRef="mySSLSettings" />
<ssl id="mySSLSettings" keyStoreRef="LDAPKeyStore" clientAuthentication="true" />
<keyStore id="LDAPKeyStore" location="serverssl.ks" type="JKS" password="secret" />
最佳答案
正如 marabu 所指出的,如果您将 LDAP 服务器的 CA 证书添加到 Liberty 的信任存储中,可能会解决您的问题。
您需要添加的位置取决于您配置信任存储的方式。
根据您粘贴的 ssl 配置片段,假设您尚未通过 jvm.options 定义信任库或将其添加到 MobileFoundation 控制台中的 MobileFoundation keystore 中,则您的serverssl.ks 将充当 keystore 和信任库。
因此,如果您将 LDAP 服务器的 CA 证书添加到serverssl.ks 并重新启动服务器,我觉得它应该可以工作。 您可以通过执行此命令将 CA 证书添加到您的 keystore ,
keytool -importcert -keystore serverssl.ks -alias <your_alias> -file <yourcacert.pem>
关于java - IBM MobileFirst v8 登录 validator 的 LDAPS 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42226289/