2

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

我在下面尝试了 Gaston 的建议,结果如下:

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.
4

3 回答 3

1

整个情况无效。

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

  2. 您的客户通过泄露他的私钥犯下了重大安全漏洞。

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

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

于 2012-10-26T20:14:27.347 回答
0

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

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

我希望它会有所帮助。

于 2012-10-26T14:40:14.393 回答
0

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

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

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

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

PS>

请报告是否有帮助

于 2012-10-27T23:55:07.020 回答