【问题标题】:Jarsigner: "This jar contains entries whose certificate chain is not validated."Jarsigner:“此 jar 包含未验证证书链的条目。”
【发布时间】:2011-12-24 09:06:37
【问题描述】:

我在自签名 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,一个用于小程序。

  • 如果我以 java web start 方式运行 jar,则不会发生。
  • 但如果我将 jar 作为小程序运行。当我尝试访问 jar 中嵌入的位图资源时,有时会收到强烈的安全警告。

使用 -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 文件?

【问题讨论】:

  • 有道理。我包含了一个指向输出的链接。
  • “如果我以 java web start 方式运行 jar,它不会发生任何事件。” JWS 启动请求的安全权限级别是多少?
  • 如果小程序也以沙盒方式运行,为什么还要对代码进行签名?
  • 因为如果我不签名,小程序将无法运行。它应该但它没有,出于我忽略的原因。

标签: java applet jarsigner


【解决方案1】:

我猜只有一行回答了你的问题。如果你仔细观察,你会看到它。在这里


[证书有效期为17/08/11 17:32至24/07/11 17:32]

正如我所希望的,你知道今天不是 7 月 24 日,所以你只需要重新签署你的应用程序

【讨论】:

  • 如果证书不再有效,那么他将不得不重新创建证书以延长有效期。
  • 不,现在是 24/07/2111,它是有效的。
  • 我只是想知道...从 17/08/2111 17:32 到 24/07/2111 17:32 有效吗?
  • 能否提供密钥和证书验证日期?
【解决方案2】:

感谢安德鲁·汤普森。我已经取消了我的 jar 文件的签名,并发现了这个错误。最好不要签名,你是对的,因为签名没有意义,因为我不需要离开沙盒。

为了记录,错误是使用 jnlp.jar 库。为了让它工作,我使用 jnlp/applet 代码而不是标准标签启动了这个小程序。

【讨论】:

【解决方案3】:

我也有同样的问题。

新的 Java 7 和 Java 6 版本中的验证发生了变化。 Bug id 为:6861062 java classes_security 在证书链验证中禁用 MD2。

在签署 Jara 文件时,我收到了一些警告消息,并且在执行命令时: jarsigner MyTools.jar -verify -verbose -certs

我收到了消息: X.509, OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US [证书有效期为29.01.96 01:00至02.08.28 01:59] [CertPath 未验证:算法约束检查失败:MD2withRSA]

我的解决方案是: - 使用另一个版本的 JDK 签名和 JRE 插件。 - 更新您的证书安全性,以免使用此算法。

希望对你有帮助。

问候

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 2020-04-14
    • 2018-06-03
    • 2011-03-16
    • 2012-05-11
    • 1970-01-01
    • 2017-08-15
    • 2021-09-12
    • 1970-01-01
    相关资源
    最近更新 更多