2012-03-30 22 views
1

私はミキシングの概念についてお詫びしますが、非対称的なWebサービスのセキュリティに関する知識は浅いです。公開鍵の生成

私の秘密鍵と顧客の公開鍵を含むjava鍵ストアがあります。

顧客のWebサービスを呼び出すときに、私が言って、見返りにエラーメッセージが表示されます。

「署名または復号が無効です」。

私がキーストアに持っている、要求に応じて送信される公開鍵は、顧客がそのサーバ上に持つ公開鍵とは異なることがわかりました。どういうわけか私は顧客に、私がキーストアに持っているものとは異なる公開鍵を与えました。

私がしたいことは、キーストアの私有鍵に基づいて公開鍵を再生成して、それを再び顧客さんに送付することです。それは可能ですか?

正直言って、これは私がkeytoolステートメントで行ったこととまったく同じです。結果、.cer拡張子を持つファイル。 .cerのファイルは公開鍵ですか、それとも何ですか?

アドバイスありがとうございます。

はそれを解決:

を私はキーストアから公開鍵を再生成しようとしたが、私は、これはそれを行うには正しい方法だったかわからないと述べた上。

私は、この新しく生成された公開鍵を顧客に提供し、サーバーにインストールするよう依頼しました。それはうまくいった、私たちは公開鍵と一致している。私は、公開鍵を再生成するために、次のkeytoolコマンドを使用:

のkeytool -export -alias [キーストア内の秘密鍵の名前] -file [出力へのパス ] -keystore [.jksキーストアへのパス]

+0

keytoolステートメントを投稿して、正しいかどうかを確認してください。 –

+0

@owlstead悲しいことに、私はkeytoolステートメントを覚えていません。私が月曜日にオフィスに戻ると、私はそれを提供します。 – Daniel

答えて

0

通常、キーストアには証明書(チェーン)とともに秘密鍵があります。秘密鍵と同じエイリアスを持つチェーンから最初の証明書を取得するだけの場合は、正しい証明書を持つ必要があります。

秘密鍵で任意のデータに署名し、証明書からの公開鍵で検証することでこれを確認することは害ではありません。 Signature.initVerify()は証明書を直接取得する必要があります。それ以外の場合は、公開鍵と秘密鍵の(ハッシュオーバー)係数を比較することもできます。

+0

証明書チェーン、それは何ですか?証明書と鍵は同じですか? – Daniel

+0

証明連鎖は、通常は自己署名され信頼されているルート証明書まで、相互に照合できるすべての証明書です。ルート証明書は他の手段、例えばあなたの好きなブラウザの中で配布してください。証明書には、公開鍵/秘密鍵のペアの公開鍵が含まれています。 Java KeyStoresは主に、キーストアユーザーの秘密キーとその部分的な証明書チェーン、および明示的に信頼できる証明書エントリの2種類のエントリを保持するために使用されます。あなたはあまりにも多くの知識が不足しています! –

関連する問題