7

globalsignによって発行されたコード署名証明書を使用してjarファイルに署名しようとしています。

私はこれにまったく慣れていませんが、グーグルと試行錯誤の末、次の手順を実行しました。

以下を使用して、キーストアに証明書をインポートしました。

keytool -importcert -alias signalias -file OS200912023195.cer

以下を使用してjarファイルに署名しようとすると、次のようになります。

jarsigner applet.jar signalias

次のエラーが発生します。

jarsigner:証明書チェーンが見つかりません:signalias。signaliasは、秘密鍵と対応する公開鍵証明書チェーンを含む有効なKeyStore鍵エントリを参照する必要があります。

何かを忘れたのですか、それとも証明書に問題がありますか?

4

5 に答える 5

6

...cer ファイル以外の何かが必要なのだろうか? ...

@マークあなたが正しいと思います。私が覚えているように、次のような例外タイプ

jarsigner: 次の証明書チェーンが見つかりません: signalias。signalias は、秘密鍵と対応する公開鍵証明書チェーンを含む有効な KeyStore キー エントリを参照する必要があります。

...証明書のみでjarに署名しようとしていると思います。したがって、いくつかの重要な手順をスキップする必要があります:|

証明書を使用したい場合に最初にしなければならないことは、CSRを生成することです...

  • A) gen キーストア。次に、キーストアで公開/秘密鍵を生成します。のようなコマンド

keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048

  • B) 次に gen CSR - 詳細については、こちらを参照してください。のようなコマンド

keytool -certreq -alias mydomain -keystore keystore.jks -file mydomain.csr

OpenSSL に問題がない場合は、次の手順 D に従って独自の証明書を生成します...

...キーストアに戻る

  • E)その後、次のようなコマンドを使用して証明書をキーストアにインポートするだけです

keytool -import -trustcacerts -alias root -file server.crt -keystore keystore.jks

  • F) そうして初めて、jarsignerツールを使用して jar に署名できます

それが役立つ場合はコメントしてください

于 2012-08-07T18:12:10.327 に答える
2

.cerファイルに秘密鍵が保存されることはありません。署名するJARには、キーストアに秘密鍵が必要です。したがって、証明書の秘密鍵がどこにあるかを見つけて、キーストアに追加する必要があると思います。

于 2012-08-07T07:48:55.503 に答える
0

jarsigner: 次の証明書チェーンが見つかりません: signalias。signalias は、秘密鍵と対応する公開鍵証明書チェーンを含む有効な KeyStore キー エントリを参照する必要があります。

keytool を使用する代わりに openssl コマンドを使用して証明書署名要求 (CSR) を作成したときに、このエラーが発生しました。その結果、キーストアを生成したときに、秘密鍵が含まれておらず、インポートした証明書のみが含まれていました。

この投稿は私の問題を解決しました: JavaキーストアはOpenSSLによって生成されたキーペアをインポートできますか?

OpenSSL でキーと証明書を作成したら、OpenSSL を使用して PKCS #12 キー ストアを作成します。

openssl pkcs12 -export -in cert.pem -inkey key.pem > server.p12

次に、このストアを Java キー ストアに変換します。

keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12

于 2013-11-14T20:21:57.897 に答える
0

これがお役に立てば幸いです: Java チュートリアル - JAR ファイルの署名

また、上記のチュートリアルから参照されているページをチェックしてください

于 2012-08-07T08:28:44.913 に答える