我有一个在WebSphere中运行的Java Web应用程序,需要调用第三方服务(IBM)以获得一些响应。
首先,IBM给了我一个p12
文件,该文件包含客户端证书,然后我在Firefox RestClient
中对其进行了测试,通话成功,并且在{{1}中得到了响应代码200 }。否则,我将被禁止403。因此,可以证明第三方提供的RestClient
是正确的。如果我的说法有误,请纠正我。
因此,我很高兴将此p12
文件导入到CellDefaultKeyStore中,以测试应用程序上的连接。不幸的是,导入此p12文件后,节点状态变为“未知”,甚至无法“同步”它们。当我检查服务器日志时,我不断看到
p12
之后,我将其从com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by xxx is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error
中删除,尝试将其导入到CellDefaultKeyStore
中,节点问题消失了,该节点可以同步回去,并且我的应用程序可以成功调用第三方。我认为这已经完成了我今天的工作,但是,这种解决方案并不稳定,它只能工作几次,而不是每次都起作用。稍后,节点状态仍将变为“未知”,或者,如果我运行NodeDefaultKeyStore
和./stopManager.sh
,则节点问题将立即再次出现。
我尝试运行./startManager.sh
和./stopNode.sh
,这2个shell脚本的日志中没有错误。但是那里的WAS Console UI仍然显示状态为./startNode.sh
,我什至无法停止通过WAS Console启动服务器。
起初,我考虑的可能是显示问题,但是如果我从unknown
删除p12
文件,此问题将解决。
我尝试使用google,但最终仍然找不到任何线索。我不确定是我的配置还是NodeDefaultKeyStore
文件有问题。
我应该参考哪个日志来查看为什么节点状态将变为p12
,或者我还能继续对此进行调试/故障排除吗?
答案 0 :(得分:0)
您已收到外部服务的证书,并且希望Websphere中的代码连接到该服务,对吗?默认的单元存储不是放置外部连接的证书的地方。
将其放入“可信”密钥库中。这将告诉WebSphere信任该外部连接证书,从而使您的代码能够与其连接。
您可以通过控制台执行操作,也可以直接在文件上使用iKeyman。
话虽如此,请不要混淆默认密钥库中的默认证书。 @dbreaux在评论中是正确的。