2017-02-14 100 views
0

我试图从ldap移动到登录身份验证器的ldaps。针对IBM MobileFirst v8登录身份验证器的LDAPS配置

在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 

我不知道,我需要把我的密钥库放在ldaps协议中。你能帮我么?

我试着把它放在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" /> 
+0

什么是登录认证器类?在v8中没有“登录身份验证器”这样的东西。 –

+0

请看这里:https://mobilefirstplatform.ibmcloud.com/blog/2016/07/17/connecting-to-LDAP-with-ibm-mobilefirst-foundation/ –

+0

它是LDAP LoginAuthenticator。 – Prisy

回答

0

您想知道密钥库,但错误消息是关于您的信任库的。后端在SSL握手期间将其(大概自签名证书或自有CA)证书提供给适配器。您的适配器尝试通过在您的信任库中递归查找颁发者证书来引导信任链。

您没有将后端证书链导入到信任库中,或者您的适配器未使用您配置的信任库。

+0

我的适配器未使用配置的信任库 - 这是问题!如何让我的适配器使用这个? – Prisy

1

正如marabu指出的那样,如果您将LDAP服务器的CA证书添加到Liberty的信任存储库,则可能会解决您的问题。

需要添加的位置取决于您如何配置信任库。

通过您已粘贴的ssl配置片段,并假设您尚未通过jvm.options定义信任库或将其添加到MobileFoundation控制台的MobileFoundation密钥库中,您的serverssl.ks将既充当密钥库又充当信任存储。

因此,如果您将LDAP服务器的CA证书添加到serverssl.ks并重新启动服务器,它应该可以工作。 执行此命令可以将CA证书添加到密钥存储区,

keytool -importcert -keystore serverssl.ks -alias <your_alias> -file <yourcacert.pem> 
+0

我也尝试了keytool并导入serverssl.ks。我仍然得到同样的错误。 MobileFoundation控制台中MobileFoundation的密钥库是什么?我想,它只适用于配置mobilefirst密钥库。我不确定。你能分享关于这方面的更多信息吗? – Prisy