为什么Ubuntu环境中的Mule ESB不使用默认的Java密钥存储?

为什么Ubuntu环境中的Mule ESB不使用默认的Java密钥存储?,java,ubuntu,ssl,mule,Java,Ubuntu,Ssl,Mule,这个问题可能与Java有关,也可能与Mule有关。我只是不知道,这就是为什么我在两个标签下都问这个问题 我的问题是:我使用Mule Studio开发Mule应用程序,虽然我大部分配置都是通过XML完成的,但它更强大。直到最近,我们还使用Windows环境来托管应用程序。所以在我的开发机器上工作的东西都在服务器上工作 然而,我们最近从Windows切换到Ubuntu服务器环境。当我开始迁移我的Mule应用程序时,我注意到它只是拒绝通过HTTPS协议连接到任何端点。一些研究表明发生了以下异常: su

这个问题可能与Java有关,也可能与Mule有关。我只是不知道,这就是为什么我在两个标签下都问这个问题

我的问题是:我使用Mule Studio开发Mule应用程序,虽然我大部分配置都是通过XML完成的,但它更强大。直到最近,我们还使用Windows环境来托管应用程序。所以在我的开发机器上工作的东西都在服务器上工作

然而,我们最近从Windows切换到Ubuntu服务器环境。当我开始迁移我的Mule应用程序时,我注意到它只是拒绝通过HTTPS协议连接到任何端点。一些研究表明发生了以下异常:

subject/issuer name chaining check failed (java.security.cert.CertPathValidatorException)
因此,这是一个证书问题。这不应该发生,因为端点使用由VeriSign签名的有效证书。而且,它从未在Windows环境中出现过。一次小小的尝试和错误表明,Mule没有接受任何一个证书。这似乎指向Mule或Java,因为它似乎无法使用任何默认证书。我通过创建一个包含所有证书的密钥存储并使用HTTPS连接器引用来修复它,但这意味着要更改我的所有应用程序,并且必须拼凑每个证书

所以我的问题有两个:

为什么Java/Mule不能使用默认的密钥存储? 我怎么修理它? 编辑+回答:
我已经修好了。这似乎是我自己的错误。我在安装Java1.7之后安装了Java1.6。这似乎使我的电脑回到了一些系统无法更新的古老版本。当我安装Java1.6和之后安装Java1.7时,安装了最新版本

我已经修好了。这似乎是我自己的错误。我在安装Java1.7之后安装了Java1.6。这似乎使我的电脑回到了一些系统无法更新的古老版本。当我安装Java1.6和之后安装Java1.7时,安装了最新版本


因此,从中吸取的教训是:不要在新的JRE之后再安装旧的JRE。Mule不喜欢它。

只是检查一下是否正常:您在Windows和Ubuntu上运行的是相同的JVM?这当然是一个正确的问题。答案是肯定的。事实上:我已经在Ubuntu 1.6和1.7上尝试了我的可用运行时,只是为了确保。仅供参考:我的开发机器正在运行1.7,我已经用正常的方法检查了Ubuntu上的1.7安装是否有效,比如干净的重新安装、完整性检查和随机文件检查。好的,谢谢,它们都是Oracle JVM,对吗?还有,你的Ubuntu服务器上的ca证书java包有多旧?cacerts的日期是2013年7月16日。至于包本身:包:ca证书java版本:20110912ubuntu6依赖:ca证书>=20090814,openjdk-6-jre-headless>=6b16-1.6.1-2;java6运行时headless,libnss3-1d>=3.12.9+ckbi-1.82-0ubuntu3~