gpt4 book ai didi

java - Mule ESB 在服务器上部署时不接受 SSL 证书,但在本地开发机器上运行良好

转载 作者:行者123 更新时间:2023-11-29 05:19:33 25 4
gpt4 key购买 nike

我将 Mule ESB 部署到 Linux 服务器,并在我的本地 Windows 开发环境中运行 Anypoint Studio。我有一个相当简单的流程,其中包括一个 SalesForce 连接器。 Salesforce REST API 有一个由 VeriSign 签名的有效证书,我的本地 Mule 实例很乐意接受它并且连接没有问题。然而,当 Mule 在服务器上运行时,它总是抛出“PKIX 路径构建失败,无法找到到请求目标的有效证书路径”。

我试过使用默认的 java keystore ,使用 javax.net.ssl.keystore 指定 keystore ,但没有任何效果。

在我的本地计算机上,我最终执行了以下操作以表明 Mule 正在使用正确的信任库:

我生成了一个空的信任库并将其作为资源添加到我的 AnyPoint 项目中。我创建了一个 HTTPS 连接器配置,以便明确指定我想用于我的 SalesForce 连接器的信任库,并将它指向我的空信任库。当我尝试在本地运行该项目时,我得到了完全相同的 SSL 错误(如我所料,因为它是一个空的信任库)。然后我获取 VeriSign CA 证书并将其添加到我的空信任库中。在那之后,本地一切正常。对我来说,这证实了我的 mule 项目正在使用我作为资源添加到项目本身的信任库。然后我导出这个项目并将其部署到我的服务器。在服务器上它抛出 SSL 错误。

会不会有一些奇怪的 JVM 配置差异会导致这种情况?

最佳答案

事实证明,Mule 并没有为每个服务使用不同的信任库。如果您部署了多个服务,最后一个显式声明信任库的服务将强制所有其他服务使用相同的信任库,覆盖它们可能拥有的任何配置。这发生在我的案例中。我通过回显 System.getProperty("javax.net.ssl.trustStore"); 发现了这一点记录并意识到它是一个信任库,它是某个完全不同的已部署项目中的资源,但被我使用。看起来像 Mule 家伙把事情搞砸了。

关于java - Mule ESB 在服务器上部署时不接受 SSL 证书,但在本地开发机器上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com