我在自签名的jar上遇到以下错误:
jar verified.
Warning:
This jar contains entries whose certificate chain is not validated.
Re-run with the -verbose and -certs options for more details.
我签了这样的罐子:
"C:\Program Files\Java\jdk1.7.0\bin\jarsigner" -keystore myKeyStore myJar.jar myAlias
我的jar有2个入口点:一个用于java web start,另一个用于applet。
使用-verbose和-certs选项会显示很多行。我对此一无所知。这是输出:output.txt(下面转载的6307行的一部分)。
s 157850 Tue Nov 08 12:57:44 CET 2011 META-INF/MANIFEST.MF
X.509, O=keyja.com
[certificate is valid from 17/08/11 17:32 to 24/07/11 17:32]
[CertPath not validated: null]
112909 Tue Nov 08 12:57:44 CET 2011 META-INF/KEYJA_CO.SF
1108 Tue Nov 08 12:57:44 CET 2011 META-INF/KEYJA_CO.RSA
sm 180 Tue Nov 08 12:16:40 CET 2011 com/keyja/client/a/a/a/k.class
X.509, O=keyja.com
[certificate is valid from 17/08/11 17:32 to 24/07/11 17:32]
[CertPath not validated: null]
sm 252 Tue Nov 08 12:16:40 CET 2011 com/keyja/client/a/a/a/r.class
...
(around 6000 lines of other output along the same lines)
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar verified.
Warning:
This jar contains entries whose certificate chain is not validated.
如何签署jar文件?
答案 0 :(得分:1)
我想,只有一行回答你的问题。如果你仔细观察,你会看到它。这是
[证书有效期为2011年8月17日17:32至24/07/11 17:32]
正如我可能希望的那样,您知道今天不是7月24日,所以您只需要重新签名您的应用
答案 1 :(得分:1)
谢谢Andrew Thompson。我有未签名的jar文件,发现了这个bug。最好不签名你是对的,因为签名没有意义,因为我不需要离开沙盒。
对于记录,错误是使用jnlp.jar库。为了使它工作,我使用jnlp / applet代码而不是标准标签启动了applet。
答案 2 :(得分:0)
我有完全相同的问题。
新Java 7和Java 6版本的验证发生了变化。 错误ID为:6861062 java classes_security在证书链验证中禁用MD2。
签署Jara文件时,我收到了一些警告消息,执行命令时: jarsigner MyTools.jar -verify -verbose -certs
我收到了消息: X.509,OU =第3类公共主要证书颁发机构,O =“VeriSign,Inc。”,C = US [证书有效期为29.01.96 01:00至02.08.28 01:59] [CertPath未验证:算法约束检查失败: MD2withRSA ]
我的解决方案是: - 使用另一个版本的JDK签名和JRE插件。 - 更新证书安全性以便不使用此算法。
我希望它会对你有所帮助。
此致