続・JWSアプリからHTTPSサイトにアクセスできない
原因がわかった。
http://smart.fm/users/kenkenwalker/journal/2008/7/11/62985#fn2
上記を参考にさせていただくと、%JAVA_HOME%\lib\security\cacertsに登録すればいいということで登録していたのだが、証明書を理解してくれない。JAVA_HOMEに指定しているJDK1.5.0_17内のcacertsのキーストアに証明書をインストールしてみた。Eclipse上から実行する場合、この対応だけでエラーは発生しなくなったが、JWS経由で実行するとエラーになるので、別のJava実行環境が使用されているようである。
jre6が最新版実行環境としてインストールされていたので、jre6のcacertsファイルにも証明書を登録しても同じであった。
そもそも、jnlpファイルでは、使用するJavaバージョンを1.5としているので、java1.5で動作しているはずであるのでおかしいなと思っていたのであるが。
よくよく確認してみると、PCのJavaのインストールフォルダは以下のようになっていた。ひょっとしてJREの方が使用されているのか?
インストールフォルダ
_j2re1.4.2_08 |
_j2re1.4.2_19 |
_j2skd1.4.2_08 |
_jdk1.5.0_17(%JAVA_HOME%に指定) |
_jre1.5.0_17 |
_jre6 |
ずっと、JAVA_HOMEに指定しているjdk1.5.0_17を使用されていると思っていたが、java web startではjre1.5.0_17で動作していました。
jre1.5.0_17/lib/security/cacertsのキーストアに証明書をインストールすることによって接続できるようになりました。
これって、オレオレ証明書を使っている場合は、java実行環境のアップグレードのたびに証明書を実行環境にインストールしないといけないということになるね。