QA@IT

ブラウザ上アプレットからサーバにHTTPS接続を行うと、ブラウザにインポートしてある証明書が自動的に使われるのはブラウザの仕様ですか?

4365 PV

はじめまして。
アプレットでHTTPS接続のプログラムを作っているときに、気になることが起きました。
それは、ブラウザ上アプレットからHTTPS接続を行うと、アプレットに特別な記述をしていなくても、自動的にブラウザにインポートしてある証明書を使ってサーバとクライアント認証を行うことです。これはブラウザの仕様なのでしょうか?自分でいろいろ調べてみたのですが、見つからずに困っています。もし、ご存知の方がいらっしゃればご教授いただけると幸いです。

ブラウザ:Internet Explorer11(認証に必要なクライアント証明書をインポートしてあります)
サーバ:Apache Tomcat 7(server.xmlでHTTPS通信のための設定を行っています)

アプレットに書いてあるHTTPS接続部分のソースは以下の通りです。ブラウザの証明書を使うための特別な記述はしておりません。

URL url = new URL("サーバのURL");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.connect();

回答

Javaの仕様ではないでしょうか。手元のPC (Windows 7)でJava コントロール・パネルを見たら、「ブラウザのキーストア内の証明書およびキーを使用する」の項目にデフォルトでチェックが入っているようでした。

参考ドキュメントを挙げておきます。

ブラウザキーストア

Java コントロールパネル

編集 履歴 (0)

blunder3さん

回答ありがとうございます。
結構な時間悩んでいたのですが、助かりました。

参考ドキュメントを確認すると、Javaの仕様みたいですね。
こちらのPCでもJavaコントロール・パネルを見ると、「ブラウザのキーストア内の証明書およびキーを使用する」にデフォルトでチェックが入っていました。

ためしに、チェックをはずして接続すると、アプレットのjarファイルの署名が検証できずにエラーになりました。Javaの仕様で間違いなさそうです。ありがとうございました。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。