10

CA からの公開証明書を持っています。この証明書を使用して Java SSL 接続を作成したいと考えています。特定の接続で異なる証明書を使用するにはどうすればよいですか? 完全なキーストアをクライアントにコピーすることなく、自己署名証明書を使用したJava SSL 接続。このことから、証明書をキーストアにインポートする必要があることがわかりました。ただし、CA からキーストアを受け取っていません。キーストアを作成し、公開証明書をそこにインポートしようとしました。しかし、次のエラーが表示されます。

keytool エラー: java.lang.Exception: 応答の公開鍵とキーストアが一致しません

CA からのキーストアが必要ですか、それとも間違っていますか?


キーストアの作成に使用するコマンド:

keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks

証明書のインポートに使用するコマンド:

keytool -import -v -alias tomcat -file signed-cert.pem -keystore keystore.jks
4

4 に答える 4

7

証明書のサインイン プロセスに正しく従っていないと思います。このディスカッションhttps://forums.oracle.com/thread/1533940を確認して、以下の手順に従って適切に実装してください。

  1. キーストアを作成します keytool -genkey -keyalg RSA -keystore test.keystore -validity 360 (これにより、「mykey」のエイリアスを持つキーストアとキー (DC) が生成されます)

  2. 証明書署名要求 (CSR) を作成します。 keytool -certreq -keyalg RSA -file test.csr -keystore test.keystore (これにより、テキスト CSR ファイルが生成されます)

  3. 署名付き証明書が生成されました: http://www.instantssl.com/ssl-certificate-support/csr_generation/ssl-certificate-index.html

  4. インポートされた署名付き証明書 (手順 3 の署名済み証明書を貼り付ける場合は CRLF に注意してください) keytool -import -alias newkey -file <signed cert file> -keystore test.keystore (?これには手順 1 とは異なるエイリアスがあることに注意してください (デフォルトは「mykey」)?

  5. クライアントが使用する公開鍵をエクスポートする keytool -export -alias mykey -file test.publickey -keystore test.keystore

サーバーシステム上

  1. トラストストアを作成し keytool -genkey -keyalg RSA -keystore test.truststore -validity 360 ます (これにより、「mykey」のエイリアスを持つキーストアとキー (DC) が生成されます)

  2. 公開鍵のインポート - クライアント経由で SSL SOAP サービスをテストするため keytool -import -file test.publickey -keystore test.truststore

問題は、ステップ 1 と 6 のエイリアスをデフォルトで「mykey」にすることでした。ステップ6を次のように変更したとき: keytool -genkey -alias testAlias -keyalg RSA -keystore test.truststore -validity 360

上記の手順 7 を使用してインポートできます (ただし-alias apublickey、手順 7 で " " を追加しました)。これは私にとってはうまくいきました。

于 2013-06-13T09:31:35.680 に答える
4

keyStore エクスプローラーGUI ツールを使用して、キーストア/証明書を生成し、証明書をキーストアにインポート/エクスポートできます。

于 2015-03-19T09:16:42.863 に答える