我做了以下步骤,但抛出异常:
1.我在Windows Server 2003上安装了openam 10.0.0。
2.在同一台Windows服务器计算机上使用ssl配置tomcat。
3.配置正确,可以使用https访问openam网址。
4.安装openam客户端sdk在另一台机器上,这是ubuntu机器,从那个ubuntu机器我试图使用
登录openam服务器 AuthContext lc = new AuthContext("/","https://server.ensarm.com:8443/openam/namingservice");
AuthContext.IndexType indexType = AuthContext.IndexType.MODULE_INSTANCE;
lc.login(indexType, "DataStore");
return lc;
但我得到以下例外:
ERROR: Naming service connection failed for https://server.ensarm.com:8443/openam/namingservice
com.iplanet.services.comm.client.SendRequestException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我不明白可能是什么问题。是因为我的java密钥库(ssl配置需要)是在Windows服务器机器上,我在ubuntu机器上没有密钥库,
OR
需要将密钥库导入到ubuntu机器中。请任何人帮我摆脱这个。
答案 0 :(得分:9)
“ javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:” 这表示服务器没有来自授权CA的有效证书。
您正面临此异常,因为您尝试通过SSL(https)进行连接。您需要将服务器证书导入JRE KeyStore。
执行以下步骤解决此问题:
获取证书:在浏览器中输入网址(例如https://server.ensarm.com:8443/openam/namingservice)。