【问题标题】:Error with signing jar files using jarsigner with a real certificate使用带有真实证书的 jarsigner 对 jar 文件进行签名时出错
【发布时间】:2017-03-02 20:10:38
【问题描述】:

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

jarsigner 错误:java.lang.RuntimeException: keystore load: Invalid keystore format

我没有使用第 10 步,而是使用来自this 站点的第 5 步,因为我使用的是真实证书而不是假证书...

注意: 我的证书采用.spc.pvk 格式...

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

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

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

【问题讨论】:

    标签: java


    【解决方案1】:

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

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

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

    【讨论】:

    • 没什么新东西...另外,它给了我同样的错误信息...我不知道为什么:(
    • 为了检查您的 p12 是否损坏,您是否尝试使用 openssl 或 keytool 读取您的 p12 文件? keytool -list -v -keystore myfile.p12 -storetype pkcs12 -storepass 密码
    • 当我使用 keytool 命令时它给了我这个错误:“keytool 错误:java.io.IOException:无法解密安全内容条目:javax.crypto.BadPaddingException:给定最终块未正确填充”但有什么问题? “.spc & “pvk” 很好并且可以工作......我不认为它来自他们。因为同样,当我创建假证书时它给出了同样的错误......所以,它是来自 jarsigner 它自己??您知道另一个易于使用且可以完成相同工作的工具吗??
    【解决方案2】:

    不是一个真正的答案,只是一个评论——我发现大写是至关重要的——“pkcs12”不起作用,但“PKCS12”起作用,使用 Jcs 的答案。

    【讨论】:

      【解决方案3】:

      这就是我所做的并且成功了:

      <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">
      

      Store pass 应该是小写的,这是工作顺序或参数,有时错误的顺序会抛出运行时填充异常。

      [signjar] jarsigner 错误:java.lang.RuntimeException:密钥库加载:

      【讨论】:

      • 这是 ant 代码,
      猜你喜欢
      • 1970-01-01
      • 2015-07-02
      • 2013-10-27
      • 2013-07-25
      • 2017-03-15
      • 2019-05-22
      • 2021-03-30
      • 2018-06-03
      • 2020-08-22
      相关资源
      最近更新 更多