Java Plug-in が HTTPS クライアント認証にブラウザ証明書ストア内の証明書を使用しない


症状

クライアントの認証にブラウザからの証明書を使用できません。

原因

Java Plug-in では、クライアントを認証するために、JRE 専用の証明書ストアからの証明書を使用します。しかし、ブラウザ証明書ストアからの証明書を使用しません。

解決方法

Java Plug-in でのクライアント認証には、ユーザのディスク上にあるクライアント証明書ストア、キーストアのタイプ、およびアクセスするためのパスワードが必要です。これら 3 つのパラメータは、次のようにしてシステムプロパティで指定しなければなりません。

-Djavax.net.ssl.keyStore=<client_keystore_file_path>
-Djavax.net.ssl.keyStorePassword=<password to access the client keystore file>
-Djavax.net.ssl.keyStoreType=<keystore_type>

これらのプロパティは、Java コントロールパネルの「詳細」タブで指定します。

デジタル証明書をブラウザ証明書ストアからファイルにエクスポートする手順を次に示します。

  1. ブラウザウィンドウを開き、「ツール」をクリックして、「インターネット オプション」サブメニュー項目をクリックします。
  2. 「コンテンツ」タブをクリックします。
  3. 中ほどの証明書の領域で、「証明書」ボタンをクリックします。利用可能な証明書がダイアログボックスに表示されます。
  4. 「目的」ドロップダウンメニューから「クライアント認証」を選択します。
  5. エクスポートする証明書を選択します。
  6. 「エクスポート」ボタンをクリックします。「証明書のエクスポート ウィザード」が起動します。
  7. 「証明書のエクスポート ウィザードの開始」ウィンドウで「次へ」をクリックします。
  8. デフォルトを「Yes, export the private key」にしたまま、「次へ」をクリックします。
  9. デフォルトを「Personal Information Exchange - PKCS #12(.PFX)」にしたまま、「次へ」をクリックします。
  10. 「Password」ウィンドウに入力します。
  11. エクスポートするファイルのパスとファイル名を入力します。自動的に拡張子 .pfx が付加されます。「次へ」をクリックします。
  12. 情報を確認し、「完了」をクリックします。

例:

証明書をファイル (パスを含む) c:\certs\client.pfx にエクスポートし、パスワード "test" を使用して .pfx ファイルを保護する場合は、必要となるシステムプロパティの値は次のようになります。

-Djavax.net.ssl.keyStore=c:\certs\client.pfx
-Djavax.net.ssl.keyStorePassword=test
-Djavax.net.ssl.keyStoreType=pkcs12

詳細情報

なし