2012-07-28 23 views
5

.jksファイルをJavaセキュリティのトラストストアにインポートするにはどうすればよいですか?私が見ているチュートリアルは、すべて「.crt」ファイルを使用しています。しかし、私はkeytoolコマンドを使って生成したキーストアでもある ".jks"ファイルしか持っていません。Javaトラストストアでjks証明書をインポートする方法

現在、私はthis tutorialに従っています。

Javaキーストアとキーペアを生成し、チュートリアルに基づいて既存のJavaキーストアの証明書署名要求(CSR)を生成することができました。しかし、 ".cert"ファイルを探しているので、既存のJavaキーストアにルートまたは中間のCA証明書をインポートしたり、既存のJavaキーストアに署名されたプライマリ証明書をインポートすることはできません。

チュートリアルに記載されている手順で何か不足していますか?私の持つ唯一のファイルが ".jks"ファイルの場合、どのように証明書を信頼できますか?そして ".csr"ファイルの使用は何ですか?

私はWindowsを使用しています。

+0

達成しようとしていることを示してください。サーバーを設定しようとしていますか?または、クライアント認証を使用しようとしていますか?または両方?クライアントやサーバーで特定のフレームワークを使用していますか? –

+0

私はフレームワークを使用していません。私はサーバー認証をしようとしています。私が接続しているサーバーが証明書を与えられた場合、正当なものであることを検証する必要があります。 – Arci

+0

だから、クライアントとサーバはなく、あなたは '.jks'キーストアを利用できますか?あなたがクライアントだけで、クライアント認証を使用していない場合は、鍵ペアを生成する必要はありません。 –

答えて

10

".jks"は、トラストストアであるです。少なくとも、それをJSSEに割り当てる必要があります。 CAからの証明書をそのファイルに追加する必要があります。ソフトウェアは、証明書を反復して証明書チェーンを検索します。秘密鍵は(パスワードで保護された)".jks"ファイルに残る必要があります。

つまり、証明書を".jks"にインポートして、証明書をエクスポートしないでください。特定のプロバイダの証明書が、証明書要求の応答に含まれていない場合は、個別にダウンロードする必要があります。あなたは、あなたが好きなブラウザからそれらをエクスポートすることもできます。通常、これらはX5.09 DER形式(Java keytoolと互換性があります)に格納されます。 (一般に)

ステップ:

  1. 始まるチェーンを得る、新規または既存のキーストア(.jks
  2. にストアに署名する証明書要求を送信し、鍵ペア&証明書要求を生成しますあなたが要求した証明書
  3. 証明書チェーンを秘密鍵でキーストアにインポートする
  4. 検証を行う必要があるパーティー用に新しいものを作成するか、既存のキーストアを使用してください証明書チェーンをインポートする
  5. 上記のキーストアの証明書チェーンの証明書、おそらく最上位の証明書( "ルート"証明書)を信頼します。
  6. パーティを設定してテストします。秘密鍵を有する鍵ストアを使用するサーバと、後者の鍵ストアを使用する複数のクライアントとを含む。
+0

これは一般的な回答です。詳細や具体的な内容を明記したい場合は、その詳細を明記してください。 –

+0

これをクリアしていただきありがとうございます!私は、キーストア内に証明書を追加することによって、実際には単一のキーストアファイルだけでなく、JVM内で証明書を実際に追加していると考えていました。すべての証明書を信頼するように設定せずにHttpsURLConnectionを使用するときに、自己署名証明書を信頼するようにJavaを設定する方法を教えてください。 – Arci

+0

いいえ、でも私はする必要はありません。通常、別名で特定のキーを使用するようにJavaアプリケーションを構成します。 Javaは証明書チェーン全体を見つけることができる場合にのみこのエイリアスを受け入れますが、自己署名証明書ではチェーンの長さは1になります。証明書*を他のエンドポイント*で信頼する必要があります。秘密鍵。例えば。接続を作成するときに、クライアントは特定の時間に有効な信頼できる証明書へのチェーンを構築できるかどうか試してみます。このためには、キーストアを追加または作成し、自己署名証明書をインポートおよび信頼する必要があります。 –

関連する問題