本文へジャンプ

WAS 6.1 NDで証明書の自動更新に失敗する問題の回避について (WAS-07-004)

WebSphere Application Server Network V61.では,作成された証明書を1年ごとに自動更新する機能が実装されています。この自動更新が特定の環境で失敗するケースがあります。その内容と回避方法を解説します。

内容/目次

更新ログ

(2007/03/15 01:29) 用語を正式表記に修正
(2008/02/05 14:41) 参考情報の追記
(2008/03/05 16:53) 誤字修正、有効期限の設定を1年から15年に変更

【概要】
WebSphere Application Server Network Deployment V6.1(以下、WAS 6.1 ND)では、作成された証明書を1年ごとに自動更新する機能が実装されています。
この自動更新が特定の環境で失敗するケースがあり、そのため一部のノードがデプロイメント・マネージャーから一切管理できなくなってしまうという問題が発生します。

この「自動更新が失敗する」という問題は、WASのSSL実装の仕様上、パッチによる修正が技術的に困難であり、修正モジュールの作成は行われません。
そのため、問題が発生する環境では、かならず後述の「問題を回避する方法」を実行する必要があります。

【対象製品】
WAS 6.1 NDの全てのバージョン、全てのプラットフォーム


【発生条件】
WAS 6.1 NDでは、導入後にプロファイル管理ツールなどを使用してプロファイルを作成します。
この時、以下のような条件でプロファイルを再作成すると問題が発生します。

問題が発生する条件
  問題が発生する条件new.pdf

上記のようにしてプロファイルを作成すると、「デプロイメント・マネージャ」と「フェデレートされた最初のノード」に対して本来なら別の証明書が作成されるべきところで、両者で同一の証明書が使用された構成が作成されてしまいます。
この状態で自動更新が発生すると問題が発生します。

なお、この「プロファイル・マネージャーが誤った構成を作成してしまう」という問題に関しては、修正が作成される予定です。
すでにサーバー環境が完成していて,作成時の状況がよくわからない場合には、以下の手順で確認を行ってください。

現在使用している環境で問題が発生するか確認する方法
現在使用している環境で問題が発生するかを確認する方法new.pdf


【発生する問題】
WAS 6.1 NDでは、作成された証明書を1年ごとに自動更新する機能が実装されています。
「フェデレートされたノード」が持つ証明書が「デプロイメントマネージャ」の証明書と同じものであると、この自動更新の処理が正しく実行されず、結果として更新後に該当のノードがデプロイメント・マネージャーと通信できなくなるという問題が発生します。

この問題は、デプロイメント・マネージャーと同時に作成された最初のノードでのみ発生します。
その後、「カスタムプロパティ」を使用して追加で作成されたノードについては、問題は発生しません。

この問題が発生すると,該当のノードのNode AgentのSystemOut.logに以下のようなメッセージが出ます。

[08/01/01 15:32:39:406 JST] 00000024 ORBRas E com.ibm.ws.security.orbssl.WSSSLClientSocketFactoryImpl createSSLSocket ProcessDiscovery : 0 JSSL0080E: javax.net.ssl.SSLHandshakeException - クライアントおよびサーバーは、セキュリティーの望ましいレベルについてネゴシエーションできませんでした。 理由: com.ibm.jsse2.util.h: No trusted certificate found javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: No trusted certificate found
  at com.ibm.jsse2.n.a(n.java:17)
  at com.ibm.jsse2.jc.a(jc.java:541)
  at com.ibm.jsse2.db.a(db.java:403)
  at com.ibm.jsse2.db.a(db.java:278)
  at com.ibm.jsse2.eb.a(eb.java:137)
  at com.ibm.jsse2.eb.a(eb.java:157)
  at com.ibm.jsse2.db.m(db.java:243)
  at com.ibm.jsse2.db.a(db.java:280)
  at com.ibm.jsse2.jc.a(jc.java:104)
  at com.ibm.jsse2.jc.g(jc.java:470)
  at com.ibm.jsse2.jc.a(jc.java:284)

[8/20/07 1:40:27:332 JST] 0000001e ORBRas E com.ibm.ws.security.orbssl.WSSSLClientSocketFactoryImpl createSSLSocket ProcessDiscovery : 0 JSSL0080E: javax.net.ssl.SSLHandshakeException - The client and server could not negotiate the desired level of security. Reason: com.ibm.jsse2.util.h: No trusted certificate found javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: No trusted certificate found
  at com.ibm.jsse2.n.a(n.java:17)
  at com.ibm.jsse2.jc.a(jc.java:541)
  at com.ibm.jsse2.db.a(db.java:403)
  at com.ibm.jsse2.db.a(db.java:278)
  at com.ibm.jsse2.eb.a(eb.java:137)
  at com.ibm.jsse2.eb.a(eb.java:157)
  at com.ibm.jsse2.db.m(db.java:243)
  at com.ibm.jsse2.db.a(db.java:280)
  at com.ibm.jsse2.jc.a(jc.java:104)
  at com.ibm.jsse2.jc.g(jc.java:470)
  at com.ibm.jsse2.jc.a(jc.java:284)
  at com.ibm.jsse2.jc.startHandshake(jc.java:172)
  at com.ibm.ws.security.orbssl.WSSSLClientSocketFactoryImpl.createSSLSocket(WSSSLClientSocketFactoryImpl.java:414)
  at com.ibm.ws.orbimpl.transport.WSSSLTransportConnection.createSocket(WSSSLTransportConnection.java:227)

また、管理コンソールからは問題の発生したノードのステータスが「不明」になり、管理操作ができなくなります。

自動更新が発生するタイミングは、プロファイルを作成した日時により異なりますが、プロファイルを作成した日から11ヵ月後から12ヵ月後の間のどこかの時点で発生します。


【問題を回避する方法】

まだ自動更新が発生しておらず,ノードとデプロイメント・マネージャーの通信障害が発生していない状態で,問題の発生を回避する手順は以下のとおりです。

問題の発生を回避する手順.pdf

自動更新が発生し,ノードとデプロイメント・マネージャーの通信障害が発生している状態でのリカバリーの手順は以下のとおりです。

リカバリーの手順.pdf


【参考情報】
【ご注意ください】 WAS 6.1の自己署名証明書・自動更新機能を使用する場合の考慮点
WAS 6.1 NDで管理セキュリティーを有効にした環境における注意点 (WAS-07-003)
WAS 6.1 NDで証明書の自動更新に失敗する問題の回避について (WAS-07-004)
WAS 6.1の自己署名証明書・自動更新機能に関する注意 (WAS-07-008)


以上

添付資料

文書情報

有効期限: 2012年3月6日
資料番号: WAS-07-004

WebSphere software

Webカタログ

製品の機能や稼働OS、参考料金をご紹介