4

再起動せずに JBoss 4.2 で証明書トラストストアを「リロード」する方法はありますか?

EJB に ssl を使用してリモート サーバー上の Web サービスを呼び出させようとしていますが、以下の記事にあるように SSLHandshakeException で同様の問題が発生しています。私たちがやろうとしていることは次のとおりで、3 台のマシンが関係しています。A は、サーバー B と C に対する Web サービス クライアントとして機能する JBoss サーバーです。

1) A で、ユーザーは B のホスト名を入力します。A のマシンは B の自己署名証明書を取得し、それをトラスト ストアにインストールします (外部シェル スクリプトを介して)。

2) SSL ソケット接続が B に対して行われ、この最初の試行で証明書ストアがロードされたように見えます。接続は成功し、すべてが機能します。

3) 再び A で、ユーザーは 2 と同じことを行います。シェル スクリプトは C の証明書を取得し、トラストストアにインストールします。ただし、C への試行された接続では、(javax.net.debug=ssl を有効にすることにより) トラストストアが「リロード」されていないように見え、C の証明書が見つからず、SSLHandshakeException が発生します。

JBoss を再起動すると、「更新された」トラストストアがロードされ、B と C の両方への接続が機能します。

JBoss を再起動せずにこれを行い、上記のスキームを収集したいのですが、正しくありません。誰かがトラストストアを動的に更新する正しい方法のドキュメントを教えてくれれば、非常にありがたいです。

JBOSS EJB サービス内から Web サービスを呼び出す際の問題

4

2 に答える 2

1

これであなたの問題は解決しますか?

http://docs.jboss.org/jbossas/javadoc/4.0.4/security/org/jboss/security/plugins/JaasSecurityDomainMBean.html#reloadKeyAndTrustStore ()

于 2010-12-11T06:27:29.627 に答える
0

1 つの EJB が自己署名証明書を (ユーザー インタラクションで) Jboss 全体で使用されるトラスト ストアに追加することは、セキュリティの観点からは良い考えではありません。

よりクリーンなソリューションは、Web サービス クライアントがカスタムX509TrustManager実装またはカスタムSSLSocketFactoryを使用できるようにすることです。どちらの場合も、信頼する証明書を自分で決めることができます。これにより、その EJB とそれぞれの WS 呼び出しに対してのみ有効な独自のトラストストアを管理できます。

参照: http://www.howardism.org/Technical/Java/SelfSignedCerts.html

于 2010-12-15T16:25:23.253 に答える