0

我有一个在 WebSphere 中运行的 Java Web 应用程序,它需要调用第三方服务 (IBM) 以获得一些响应。

首先 IBM 给了我一个p12包含客户端证书的文件,我在 Firefox 中对其进行RestClient了测试,调用成功,我在RestClient. 否则,我将获得 403 禁止。因此,这证明了p12第三方提供的信息是正确的。如果我的陈述有误,请纠正我。

因此,我很高兴地将这个p12文件导入到我的 CellDefaultKeyStore 中,以测试我的应用程序上的连接。不幸的是,在我导入这个 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.shand ./startManager.sh,节点问题将立即返回。

我已经尝试运行./stopNode.sh./startNode.sh这 2 个 shell 脚本的日志中没有错误。但是那里的 WAS 控制台 UI 仍然显示状态unknown,我什至无法停止通过 WAS 控制台启动我的服务器。

起初我认为它可能是显示问题,但如果我p12NodeDefaultKeyStore.

我尝试谷歌,但最终仍然找不到任何线索。我不确定是我的配置还是p12文件有问题。

我应该参考哪个日志来查看为什么节点状态会变成unknown,或者我还可以继续调试/解决什么问题?

4

1 回答 1

0

您收到了外部服务的证书,并且希望 Websphere 中的代码连接到该服务,对吗?默认单元存储不是放置外部连接证书的地方。

将其放入受信任的密钥库中。这将告诉 WebSphere 信任该外部连接证书,从而使您的代码能够连接到它。

您可以通过控制台执行此操作,或直接在文件上使用 iKeyman。

话虽如此,请不要乱用默认密钥库中的默认证书。@dbreaux 在评论中是正确的。

于 2019-05-02T18:55:09.023 回答