更新到 JDK 8u131 后,我们无法再对某些 jar 进行签名。我们正在使用 Ant 的<signjar>
签署任务。签名失败并出现以下错误:
[signjar] jarsigner: unable to sign jar: java.io.IOException:
Invalid encoding: redundant leading 0s
有趣的是,有时 jar 签名成功,有时签名失败。我发现了以下错误:
https://bugs.openjdk.java.net/browse/JDK-8175251
有人建议使用以下命令标准化 pkcs12 文件:
openssl pkcs12 -in CodeSign.pfx -out key-and-cert -nodes
openssl pkcs12 -in key-and-cert -export -out CodeSign2.pfx
但是,即使在执行这些命令并使用新的 key 文件之后,我仍然遇到相同的“冗余前导 0”错误。
临时解决方法是使用 JDK 8u112 或更早版本。
有什么想法可以解决这个问题吗?
最佳答案
我们也遇到了同样的问题。 最新的jdk 1.8.0_151似乎解决了这个问题。 jarsigner -verify 不再检测到无效的 jar。
关于java - 无法签署 jar : java. io.IOException:无效编码:冗余前导 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45342449/