web-dev-qa-db-ja.com

jarsigner:の証明書チェーンが見つかりません

証明書をプライベート~/.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.

この問題を解決するにはどうすればよいですか?

22
Robert Munteanu

キーストアに含まれているのは証明書(公開鍵)だけで、秘密鍵を含む完全なキーエントリが必要であり、証明書チェーン全体で何でも署名できるようです。

14
Maurice Perry

私は同じ問題に直面しました。 CAによって発行された.p12ファイルがあり、jarファイルに署名しようとしていました。ただし、エラーが発生しました:

jarsigner: Certificate chain not found for:

基本的に、私はコンソールからエイリアス名をコピーしていました。間違った文字「クエスチョンマーク」(?)があり、このエラーが発生していました。代わりに、keytoolの出力をテキストファイルにリダイレクトし、そこからエイリアス名をコピーしました。

  1. 次のコマンドを発行します。

    keytool -list -v -storetype pkcs12 -keystore "mycertificate.p12"> cert.txt

(これは非常に重要です。常にtxtファイルにリダイレクトしてください。コンソール出力からコピーしないでください。間違った文字が含まれている可能性があります)

  1. 証明書のエイリアス名を見つけます。 「エイリアス名」の前に記載されているように、cert.txtを開いて文字列をコピーします。

この文字列が「私のエイリアス名、ap。’s my ca limited id」であるとしましょう

  1. Jarsignerを使用します。

    jarsigner -storetype pkcs12 -keystore "mycertificate.p12" myjarfile.jar "my alias name、a.p.'s my ca limited id"

0
Atul