Jarsigner: 未找到 的证书链

2022-09-01 21:07:32

我已将证书导入到私有文件中:~/.keystore

keytool -list
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

mylyn-mantis, Jul 15, 2010, trustedCertEntry

并且我正在尝试使用它对jar进行签名,但是我收到“找不到证书链”错误。

jarsigner -verbose  /home/robert/file.jar mylyn-mantis
jarsigner: Certificate chain not found for: mylyn-mantis.  mylyn-mantis must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

我该如何解决这个问题?


答案 1

您的密钥库似乎只包含一个证书(公钥),您需要一个完整的密钥条目,一个私钥,以及整个证书链才能对任何内容进行签名


答案 2

简答题

使用别名密钥而不是密钥存储,如下所示:

jarsigner -verbose -keystore [Your signature storage path] -signedjar [signed filename] [unsigned filename] [Your alias key]

更多详情

以下是解决此错误的最简单方法:

  1. 转到 bin 文件夹 。.它可能在这条路上:

C:\Users[您的计算机名称]\jdk\bin

或此路径:

C:\Program Files\Java\jre1.8.0_77\bin

  1. 为了防止因环境变量配置而导致问题,请将要签名的空包密钥库[用于签名的私钥]复制到 JDK 下的 bin 目录中

  2. 通过运行以下命令获取别名密钥:

    keytool -keystore [your key store] -list -v

  3. 最后运行以下命令:

    jarsigner -verbose -keystore [Your signature storage path] -signedjar [signed filename] [unsigned filename] [Your alias key]


推荐