2

我在 jarSigning 问题上是全新的,但是几天来我遇到了麻烦并且搜索/学到了很多东西。(这个话题和我的问题无关:为什么Java Web Start说一个签名的jar文件是未签名的?

我在我的 java-web-start 项目中使用了 org.apache.commons 包,它多年来一直很有魅力。上周,在 java 7 更新 45 之后,我们的用户无法运行我们通过 JNLP 运行的应用程序。他们收到的错误是与某些属于 Apache 的 jar 相关的“JARSigningException”。我从 jnlp 中删除了与这 6 个 jar 对应的行,然后我们能够启动 webstart 应用程序,但在运行时我们遇到了一些异常。

所有 jar 都使用相同的证书进行自签名(我自己没有签名,但由于几天前我们没有遇到问题,它们应该使用相同的证书进行签名)

当我如下验证有问题的 jar 文件时:jarsigner -verify commons-digester-1.7.jar

我收到以下消息:

jar verified.

警告:

This jar contains unsigned entries which have not been integrity-checked.
This jar contains entries whose signer certificate has expired.
This jar contains entries whose certificate chain is not validated.

Re-run with the -verbose and -certs options for more details.

如果 Jar 文件经过验证,为什么我在尝试运行 jnlp 文件时仍会收到 JARSigningException?

任何帮助将不胜感激,在此先感谢,

4

1 回答 1

1

有关Java7 Update45 中的安全更改的更多信息,请参见http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html 。U51 的变化开始进一步关闭安全问题的大门。 http://java.com/en/download/faq/release_changes.xml

一般规则是我们下载的 JNLP 应用程序中的所有 jar 都需要使用相同的证书进行签名,但就像我说的,我认为现在对自签名证书有更严格的限制。

还发现了这个博客https://blogs.oracle.com/java-platform-group/entry/updated_security_baseline_7u45_impacts

当设置为高或非常高时,安全滑块设置(在 Windows - 控制面板 -> Java 然后安全选项卡中)将阻止自签名和未签名的应用程序。

于 2014-01-24T19:15:42.067 回答