使用具有真实证书的jarsigner签署jar文件时出错

时间:2010-10-05 08:26:02

标签: java

我在使用jarsigner签署我的jar文件时遇到问题。我使用this教程来签署我的jar文件,但是最后一步(签署jar),我收到了这个错误:

  

jarsigner错误:java.lang.RuntimeException:keystore load:无效的密钥库格式

我没有使用步骤#10,而是使用了来自this网站的第5步,因为我使用的是真正的证书而不是假证书......

注意: 我在.spc& .pvk格式......

但是,由于我使用的是jarsigner,我必须将它们转换为.p12格式。因此,我先使用.pfx将其转换为pvkimprt.exe,然后转换为.p12。我使用了之前在之前提到的链接中指定的方法。

此外,我尝试创建一个假证书,以确保问题不是来自pvkimprt.exe工具或来自证书。它给了我同样的错误。

证书很好。那么,问题出在哪里?

3 个答案:

答案 0 :(得分:3)

您遇到的错误表明jarsigner不了解包含密钥的密钥库的格式。

如果您转换了密钥&将证书转换为PKCS#12文件,您必须使用-storetype PKCS12命令行选项指定使用的密钥库的类型,并使用-storepass mystorepassword

指定P12密码

(实际上大部分时间.pfx和.p12用于相同的文件格式,因此我不确定教程中的firefox导入/导出步骤是否强制执行)

答案 1 :(得分:2)

不是答案,只是评论 - 我发现大写是至关重要的 - " pkcs12"没有工作,但" PKCS12"用Jcs的回答做了。

答案 2 :(得分:1)

这就是我所做的并且有效:

<ant:signjar alias="le-f0b73c88-1f82-4497-8c3f-e10d399b4c9c" storetype="pkcs12"
   storepass="fount-current"  
   keystore="/vobs/oam_base/loadbuild_tools/common/src/conf/kunal.pfx">

存储传递应该是小写,这是工作顺序或参数,有时错误顺序抛出运行时填充异常。

  

[signjar] jarsigner错误:java.lang.RuntimeException:keystore load: