私はJerseyRESTWebサービスを作成し、Glassfishにデプロイし、CLIENT-CERTレルムを使用して保護しました。ここで、同じGlassfishサーバー(またはおそらく別のサーバー)にデプロイされたアプリケーションから呼び出したいと思います。
スタンドアロンのJavaクラスからSSL経由でサービスを正常に呼び出すことができます。ただし、同じサーバーにデプロイされたコードから呼び出すと、nullの証明書チェーンエラーが発生します。つまり、サーバーから要求されたときにクライアントが証明書を提供しません。
javax.net.ssl.SSLHandshakeException: null cert chain
Glassfishキーストアとトラストストアをスタンドアロンクラスで使用する場合
-Djavax.net.ssl.trustStore="C:\glassfish3\glassfish\domains\domain1\config\cacerts.jks"
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.keyStore="C:\glassfish3\glassfish\domains\domain1\config\keystore.jks"
-Djavax.net.ssl.keyStorePassword=changeit
その後も機能しますが、Glassfish自体からは機能しません。