WebLogic Server 无法与目标 URL 建立安全连接,并出现 SSLHandshake 异常

问题描述 投票:0回答:1

我有一个使用 WebLogic 12c 托管服务器托管的 java 应用程序。它正在调用一个安全的外部 API 端点。 这是从 weblogic 服务器到目标服务器的出站连接,例如 https://www.demosite.com/api/end/point。最初,当我收到 SSLHandshake 错误时。

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

我将目标服务器“https://www.demosite.com”的证书导入到 weblogic 托管服务器中的 CustomTrust.jks 密钥库中。还将相同的证书导入到 JAVA 默认密钥库 cacerts 中。

这样我就开始看到成功的 api 调用。但这并不一致。经常看到间歇性故障。所以我决定将以下 java 参数添加到我的托管服务器启动设置中。

-Djdk.tls.client.protocols=TLSv1.2 -Dhttps.protocols=TLSv1.2

托管服务器重新启动是通过删除 Managed_Server tmp 和缓存文件夹来完成的。 此操作项目无助于解决问题。然后对 weblogic 托管服务器设置中的 SSL 配置进行了一些更改。就像下面的,

主机名验证:自定义主机名验证器 自定义主机名验证程序:weblogic.security.utils.SSLWLSWildcardHostnameVerifier 使用服务器证书:选中 两种客户端证书行为:请求客户端证书但未强制执行

我尝试的所有设置都无法彻底解决问题。

从我本地计算机中的 Jdeveloper 集成 weblogic 服务器中,API 调用永远不会失败。仅在运行于 Linux Server 上的 weblogic 托管服务器中才会出现此问题。在我的本地计算机中,我没有明确导入目标服务器证书。我在这里缺少什么?目标仅允许 TLSv1.2/SSLv3 连接。

java ssl weblogic12c
1个回答
0
投票

这个问题已经解决了。发现我应该只在 JKS 密钥库或 java 默认 cacerts 中安装根证书和中间证书,但我的密钥库中缺少中间证书。它不需要目标服务器证书。

© www.soinside.com 2019 - 2024. All rights reserved.