web-dev-qa-db-fra.com

Jarsigner: chaîne de certificats introuvable pour

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?

22
Robert Munteanu

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

14
Maurice Perry

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

  1. É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)

  1. Découvrez le nom d'alias dans le certificat. Ouvrez cert.txt et copiez la chaîne telle qu'elle est mentionnée devant "Alias ​​name:"

Disons que cette chaîne est "mon nom d'alias, a.p. est mon identifiant limité ca"

  1. Utilisez jarsigner:

    jarsigner -storetype pkcs12 -keystore "mycertificate.p12" myjarfile.jar "mon nom d'alias, a.p. est mon identifiant limité CA"

0
Atul