【问题标题】:Jarsigner - This jar contains entries whose certificate chain is invalid. Reason: PKIX path building failed:Jarsigner - 此 jar 包含证书链无效的条目。原因:PKIX 路径构建失败:
【发布时间】:2020-04-14 03:40:27
【问题描述】:

对于学校,我需要签署一个罐子,并提供了以下教程https://docs.oracle.com/javase/tutorial/security/toolsign/

所以,我从制作和编译一个打印“Hello World!”的简单程序开始。并使用以下命令将其放入 jar 中:

jar cvfm Hello.jar Hello.class MANIFEST.M

之后我使用以下命令生成我的密钥,它是自签名的并不重要。

keytool -genkey -alias indy -keystore indystore

生成我的密钥后,我使用以下命令对我的 jar 进行签名

jarsigner -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp -keystore indystore -signedjar SignedHello.jar Hello.jar indy

现在,当我想验证我签名的 jar 时,我遇到了多个错误,我不知道为什么。如果这很重要,我正在使用adoptopenjdk 11。

jarsigner -verify -keystore indystore SignedHello.jar

我得到的错误:

  • 此 jar 包含证书链无效的条目。

    原因:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

  • 此 jar 包含签名者证书是自签名的条目。

带有警告的详细输出如下所示:

【问题讨论】:

  • 这些是警告而不是错误。我将创建一个单独的信任库,其中仅包含要信任的证书。毕竟,这就是它在现实世界中的使用方式,信任库不会包含私钥。当然,“自签名”警告不会消失。

标签: java jar keytool jarsigner jar-signing


【解决方案1】:

与 gitlab 中的 issue 相同:

Hans-Christoph Steiner @eighthave:自 Android 诞生以来,APK 一直由自签名证书签名。这并不新鲜。 Java 的 jarsigner 希望开发人员使用官方的 CA 签名证书,因此发出警告。 Android 的 apksigner 在使用 APK 时会提供更多有用的警告和错误。 所以说真的,这里没有什么新鲜事。只是现在,您可以使用 Android 的 apksigner 来获得更好的 APK 效果。

Jozef Hollý @j2ghz :无论如何它都会通过更新。我认为这是一个错误,它不会起作用。 现在每个 apk 大约需要 2 秒(150 个 apk 需要 5 分钟)而不是大约 10 秒,这也让我感到困惑。

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 2011-12-24
    • 2011-05-03
    • 2020-03-25
    • 2013-02-03
    • 2018-07-15
    • 2014-01-31
    相关资源
    最近更新 更多