无法签名jar:java.io.IOException:无效编码:冗余前导0

时间:2017-07-27 05:59:00

标签: java ant jarsigner

更新到JDK 8u131后,我们再也无法签署一些罐子了。我们正在使用ant的<signjar>任务进行签名。签名失败,出现以下错误:

[signjar] jarsigner: unable to sign jar: java.io.IOException:
    Invalid encoding: redundant leading 0s

有趣的是,有时罐子签名成功,有时签名失败。我发现了以下错误:

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

然而,即使在执行这些命令并使用新的密钥文件后,我仍然得到相同的&#34;冗余的前导0和#34;错误。

临时解决方法是使用JDK 8u112或更早版本。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题。 最新的jdk 1.8.0_151似乎解决了这个问题。通过jarsigner -verify,已经检测到无效的jar不再存在。