带有p2的Eclipse RCP javax.net.ssl.setTrustore不起作用

时间:2018-10-19 15:54:42

标签: java eclipse-rcp p2 truststore

我有一个使我发疯的问题。 我有一个带有p2的RCP应用程序,启动时会调用一个Web服务(在https中)进行登录。证书是自签名的。由于我不想修改jre cacert,因此我将自定义cacert放在我的一个插件中,因此我使用功能函数提取了此插件,因此我的cacerts在FS上而不是在jar中。

在调用WS之前,我先设置了Java属性

System.setProperty("javax.net.ssl.trustStore","mystruststorepath");
System.setProperty("javax.net.ssl.trustStorePassword","mystruststorepsw");

现在疯了。

  1. 如果我从eclipse IDE运行我的应用程序,一切正常
  2. 如果我导出不带p2的应用程序,则可以正常运行
  3. 如果我使用p2导出应用程序,则该应用程序将无法正常运行,并且我会收到与信任库中缺少证书有关的错误
  4. 如果我运行第3点的相同应用程序,只需在MyApp.ini中添加选项-Djavax.net.ssl.trustStore = mystruststorepath即可

我不知道这与p2有什么关系,但是我能想象的唯一解释是p2插件应用了某种类型的truststore缓存,因此无法以编程方式对其进行更改。我不知道这是否有可能。

有人遇到同样的问题吗?

我想证明这些事情

  • 我将eclipse jre运行时和执行配置为与导出产品使用的jre相同
  • 我多次检查了certstore路径,这是正确的

这是我得到的错误

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

0 个答案:

没有答案