【发布时间】:2014-10-09 11:40:08
【问题描述】:
我已将 Mule ESB 部署到 Linux 服务器和在本地 Windows 开发环境中运行的 Anypoint Studio。我有一个相当简单的流程,其中包括一个 SalesForce 连接器。 Salesforce REST API 有一个由 VeriSign 签名的有效证书,我的本地 Mule 实例很高兴地接受它并毫无问题地连接。但是,当 Mule 在服务器上运行时,它总是抛出“PKIX 路径构建失败,无法找到请求目标的有效证书路径”。
我尝试使用默认的 java 密钥库,用 javax.net.ssl.keystore 指定密钥库,没有任何效果。
在我的本地机器上,我最终执行了以下操作以表明 Mule 使用了正确的信任存储:
我生成了一个空的信任库并将其作为资源添加到我的 AnyPoint 项目中。我创建了一个 HTTPS 连接器配置,以明确指定要用于我的 SalesForce 连接器的信任库,并将其指向我的空信任库。当我尝试在本地运行项目时,我得到完全相同的 SSL 错误(正如我所料,因为它是一个空的信任库)。然后,我获取 VeriSign CA 证书并将其添加到我的空信任库中。之后,本地一切正常。对我来说,这证实了我的 mule 项目正在使用我作为资源添加到项目本身的信任库。 然后我导出这个项目并将其部署到我的服务器。在服务器上它会引发 SSL 错误。
是否有一些奇怪的 JVM 配置差异可能导致这种情况?
【问题讨论】:
-
@jww 当然,这是一个类似的问题,但该问题专门涉及在代码中设置信任库。对于使用 Mule 的人(主要是 XML 配置),我认为只有获得 Mule 源并开始使用自定义构建修改默认行为时才会有用。