我已经在网络开始工作了几年,并且有签署 jar 的经验,什么不是 . 我正在第一次尝试使用Web start部署RCP应用程序,虽然我实际上已使用相同的证书签署了所有的jar,但我仍然收到此错误:'jnlp中的jar资源未使用相同的证书签名'
还有其他人遇到过这个吗?如果是这样,有关如何解决的任何想法?
当我检查 jar 后遇到类似的问题时,发现有些第三方 jar 是由其他人签名的 .
您应该为其他证书签名的jar创建一个单独的jnlp文件,并从您的jnlp文件中读取此jnlp:
<resources> ... <extension name="other" href="other.jnlp"/> </resources>
Here或here你可以找到一个例子 .
这可能是您用作库的已签名jar的陈旧清单条目 . 我通过webstart遇到了jogl这个问题 . 试试这个:
解压缩所有jar,清除所有META-INF目录,然后再次对其进行签名 .
我发现JNLP / Webstart不喜欢通过jarsigner.exe为给定的JAR进行多次签名/签名 . 如果BouncyCastle(预先签署的)等JAR再次与您公司的证书签署,目视检查会让我相信新的证书和签名在JAR中正确执行 . 但是JNLP可能只读取META-INF中的第一个(字母顺序?)签名,从而抱怨它与您的其他JAR(每个JAR上只有一个,Corporate,签名)不匹配 .
我和马修所描述的BouncyCastle JARs完全相同 . 但是,我发现JRE版本1.6.0_14及更高版本很乐意接受具有多个签名的JAR(正如我所料) . 因此,我不需要使用上面描述的JNLP'组件扩展机制' .
PS在1.6.0_14发行说明中没有找到任何对此修复的明显引用 . 但是,我已经验证了多个签名的JAR可以在所有更高版本中运行(至少14 - 17 24) .
请参阅常见问题解答之一的说明:How do I use multiple JAR files signed by different certificates?
正确的方案 .
在我的项目中,发生的情况是负载均衡器池中有几个实例,有些实例有旧版本的代码,有些实例有新版本 . 因此,有证书没有由相同的证书签署...
6 回答
当我检查 jar 后遇到类似的问题时,发现有些第三方 jar 是由其他人签名的 .
您应该为其他证书签名的jar创建一个单独的jnlp文件,并从您的jnlp文件中读取此jnlp:
Here或here你可以找到一个例子 .
这可能是您用作库的已签名jar的陈旧清单条目 . 我通过webstart遇到了jogl这个问题 . 试试这个:
解压缩所有jar,清除所有META-INF目录,然后再次对其进行签名 .
我发现JNLP / Webstart不喜欢通过jarsigner.exe为给定的JAR进行多次签名/签名 . 如果BouncyCastle(预先签署的)等JAR再次与您公司的证书签署,目视检查会让我相信新的证书和签名在JAR中正确执行 . 但是JNLP可能只读取META-INF中的第一个(字母顺序?)签名,从而抱怨它与您的其他JAR(每个JAR上只有一个,Corporate,签名)不匹配 .
我和马修所描述的BouncyCastle JARs完全相同 . 但是,我发现JRE版本1.6.0_14及更高版本很乐意接受具有多个签名的JAR(正如我所料) . 因此,我不需要使用上面描述的JNLP'组件扩展机制' .
PS在1.6.0_14发行说明中没有找到任何对此修复的明显引用 . 但是,我已经验证了多个签名的JAR可以在所有更高版本中运行(至少14 - 17 24) .
请参阅常见问题解答之一的说明:How do I use multiple JAR files signed by different certificates?
正确的方案 .
在我的项目中,发生的情况是负载均衡器池中有几个实例,有些实例有旧版本的代码,有些实例有新版本 . 因此,有证书没有由相同的证书签署...