我已经将证书导入到私有~/.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.我该如何解决这个问题?
发布于 2010-07-15 21:30:30
您的密钥库似乎只包含一个证书(公钥)您需要一个完整的密钥条目和一个私钥,以及整个证书链才能对任何内容进行签名
发布于 2019-12-17 08:30:04
我也面临着同样的问题。我有CA颁发的.p12文件,我正在尝试签署jar文件。然而,我得到了错误:
jarsigner: Certificate chain not found for:基本上,我是从控制台复制别名。它有错误的字符‘问号’(?)导致此错误。相反,我将keytool的输出重定向到文本文件,然后从那里复制别名。
keytool -list -v -storetype pkcs12 -keystore "mycertificate.p12“> cert.txt
(这一点非常重要。总是重定向到txt文件。请勿从控制台输出复制。它可能包含错误的字符)
前面提到的字符串
假设这个字符串是"my alias name,a.p.‘s my ca limited id“
jarsigner -storetype pkcs12 -keystore "mycertificate.p12“myjarfile.jar”我的别名,a.p.‘s my ca limited id"
发布于 2021-01-11 16:15:58
Short Answer
使用别名密钥而不是密钥存储,如下所示:
jarsigner -verbose -keystore [Your signature storage path] -signedjar [signed filename] [unsigned filename] [Your alias key]更多详细信息
以下是解决此错误的最简单方法:
C:\UsersYour您的计算机名\jdk\bin
或此路径:
C:\Program Files\Java\jre1.8.0_77\bin
keytool -keystore [your key store] -list -v
jarsigner -verbose -keystore [Your signature storage path] -signedjar [signed filename] [unsigned filename] [Your alias key]
https://stackoverflow.com/questions/3255836
复制相似问题