J'ai importé un certificat dans un ~/.keystore
fichier:
keytool -list
Enter keystore password:
Keystore type: JKS
Keystore provider: Sun
Your keystore contains 1 entry
mylyn-Mantis, Jul 15, 2010, trustedCertEntry
et j'essaye de signer un pot avec lui, mais j'obtiens une erreur "chaîne de certificat non trouvée".
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.
Comment puis-je résoudre ce problème?
Il semble que votre keystore ne contienne qu'un certificat (clé publique) dont vous avez besoin d'une entrée de clé complète, avec une clé privée, et toute la chaîne de certificats pour pouvoir signer quoi que ce soit
J'ai fait face au même problème. J'ai un fichier .p12 émis par CA et j'essayais de signer un fichier jar. Cependant, je recevais une erreur:
jarsigner: Certificate chain not found for:
Fondamentalement, je copiais le nom d'alias de la console. Il y avait un mauvais caractère "point d'interrogation" (?) À l'origine de cette erreur. Au lieu de cela, j'ai redirigé la sortie de keytool
vers un fichier texte, puis j'ai copié le nom d'alias à partir de là.
Émettez cette commande:
keytool -list -v -storetype pkcs12 -keystore "mycertificate.p12"> cert.txt
(Ceci est très important. Redirigez toujours vers le fichier txt. Ne copiez pas à partir de la sortie de la console. Il peut contenir des caractères incorrects)
Disons que cette chaîne est "mon nom d'alias, a.p. est mon identifiant limité ca"
Utilisez jarsigner:
jarsigner -storetype pkcs12 -keystore "mycertificate.p12" myjarfile.jar "mon nom d'alias, a.p. est mon identifiant limité CA"