更新到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或更早版本。
如何解决此问题?
答案 0 :(得分:1)
我们遇到了同样的问题。 最新的jdk 1.8.0_151似乎解决了这个问题。通过jarsigner -verify,已经检测到无效的jar不再存在。