如何使用提供的密钥库来签署jar文件

时间:2012-10-26 14:11:11

标签: java security applet signing

我的客户端为了签署Java applet jar文件而给了我一个密钥库。我从中导出了一个.cer文件,然后将其导入cacerts但我一直收到“找不到证书链”错误。它还说“别名必须引用包含私钥和相应公钥证书链的有效KeyStore密钥条目。”

我在下面尝试了加斯顿的建议,其内容如下:

jarsigner -keystore "D:\My Documents\keystore\MyKeyStore.jks" -storepass mypass -signedjar my_signed_jar.jar" unsigned.jar myalias

Warning:
The signer's certificate chain is not validated.

3 个答案:

答案 0 :(得分:1)

整个情况无效。

  1. 您应该使用自己的私钥来签署JAR文件,而不是其他人。

  2. 您的客户通过泄露他的私钥来承担 MAJOR 安全漏洞。

  3. 您提到的有关签名者证书链未经验证的问题完全是客户端的问题。他提供了证书:证明其有效性完全取决于他。

  4. 不是你的问题,但根本不是一个真正的问题,因为整个情况都是无效的。您应该使用自己的证书签署自己的代码。

答案 1 :(得分:0)

如果您只想从密钥库中签名jar,则应在命令行中运行以下命令:

%JAVA_HOME%\ bin \ jarsigner -keystore YOUR_KEY_STORE.ks -storepass KS_PASS YOUR_JAR KS_ALIAS

我希望它会有所帮助。

答案 2 :(得分:0)

  

我从中导出了一个.cer文件,然后将其导入cacerts但是我   不断收到“找不到证书链”错误。

当然,链条将无法找到:)你不应该导出因为签署一个jar但你必须使用原始的密钥库密钥 - 证书生成的密钥...

如果您拥有密码等所有权限,则应使用客户端为您签署jar的原始密钥库密钥。接下来,您必须使用jarsigner常见命令,如

jarsigner -keystore C:\working\mystore -storepass myspass
      -keypass dukekeypasswd MyJarFile.jar duke

P.S>

请报告是否有帮助