Secure Sockets Layer (SSL) を構成、または使用可能にした後で、さまざまな問題が 発生することがあります。SSL の構成後、デプロイメント・マネージャーを停止できなくなる 場合があります。また、HTTPS を使用したリソースにアクセスできなくなることもあります。 クライアントとサーバー間のネゴシエーションが、適切なセキュリティー・レベルで できなくなる場合があります。ここで取り上げる問題は、さまざまな可能性のごく一部にすぎません。 WebSphere Application Server を正常に運用するためには、 これらの問題の解決が必須です。
どのような問題が発生しましたか?
Secure Sockets Layer レパートリーを構成した後、ノード・エージェントを停止しないでデプロイメント・マネージャーを停止すると、次の回にデプロイメント・マネージャーを起動したときに以下のようなエラー・メッセージが表示されます。
CWWMU0509I: サーバー "nodeagent" にアクセスできません。It appears to be stopped. CWWMU0211I: エラーの詳細については次のファイルを参照してください: /opt/WebSphere/AppServer/logs/nodeagent/stopServer.log
このエラーは、デプロイメント・マネージャーが各ノード・エージェントに新しい SSL 証明書を伝搬しなかったために起こります。 ノード・エージェントはデプロイメント・マネージャーよりも古い証明ファイルを使っており、証明ファイルに互換性がありません。 この問題に対処するには、 ノード・エージェントとデプロイメント・マネージャーのプロセスを手動で停止します。
停止する個々のプロセスを特定する際には、一定の項目について考慮する必要があります。 WebSphere Application Server は、停止される各プロセスについてプロセス ID を pid ファイルに保管するため、これらの *.pid ファイルを見つける必要があります。 例えば、スタンドアロン・インストール操作の server1.pid は、app_server_root/logs/server1.pid にあります。
[Root exception is org.omg.CORBA.TRANSIENT: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_CLIENT_SOCKET: CWWJE0080E: javax.net.ssl.SSLHandshakeException - The client and server could not negotiate the desired level of security. Reason: handshake failure:host=MYSERVER,port=1079 minor code: 4942F303 completed: No] at com.ibm.CORBA.transport.TransportConnectionBase.connect (TransportConnectionBase.java:NNN)
解決策としては、 システム・プロパティーを使用せず、独自の鍵ストア/トラストストアを定義するソケット・ファクトリーを 使用することをお勧めします。例については、 http://www.ibm.com/developerworks/java/library/j-customssl/ を参照してください。
ERROR: 初期コンテキストを取得できないか、開始コンテキストを検索できません。 終了します。 Exception received: javax.naming.ServiceUnavailableException: A communication failure occurred while attempting to obtain an initial context using the provider url: "corbaloc:iiop:localhost:2809". Make sure that the host and port information is correct and that the server identified by the provider url is a running name server. If no port number is specified, the default port number 2809 is used.Other possible causes include the network environment or workstation network configuration. [Root exception is org.omg.CORBA.TRANSIENT: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_CLIENT_SOCKET: CWWJE0080E: javax.net.ssl.SSLHandshakeException - The client and server could not negotiate the desired level of security. Reason: unknown certificate:host=MYSERVER,port=1940 minor code: 4942F303 completed: No]
解決策としては、 システム・プロパティーを使用せず、独自の鍵ストア/トラストストアを定義するソケット・ファクトリーを 使用することをお勧めします。例については、 http://www.ibm.com/developerworks/java/library/j-customssl/ を参照してください。
ERROR: 初期コンテキストを取得できないか、開始コンテキストを検索できません。 終了します。 Exception received: javax.naming.ServiceUnavailableException: A communication failure occurred while attempting to obtain an initial context using the provider url: "corbaloc:iiop:localhost:2809". Make sure that the host and port information is correct and that the server identified by the provider url is a running name server. If no port number is specified, the default port number 2809 is used.Other possible causes include the network environment or workstation network configuration. [Root exception is org.omg.CORBA.TRANSIENT: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_CLIENT_SOCKET: CWWJE0080E: javax.net.ssl.SSLHandshakeException - The client and server could not negotiate the desired level of security. Reason: bad certificate: host=MYSERVER,port=1940 minor code: 4942F303 completed: No]
この問題を確認するには、サーバーのトラストストア・ファイルをチェックして、 クライアント個人証明書からの署名者証明書があるかどうかを確認してください。 自己署名のクライアント個人証明書の場合、署名者証明書が、個人証明書の公開鍵です。 認証局 (CA) 署名のクライアント個人証明書の場合、 署名者証明書が、個人証明書に署名した CA のルート CA 証明書です。
この問題を解決するには、 クライアント署名者証明書をサーバーのトラストストア・ファイルに追加します。
ERROR: 初期コンテキストを取得できないか、開始コンテキストを検索できません。 終了します。 Exception received: org.omg.CORBA.INTERNAL: Trace from server: 1198777258 at host MYHOST on port 0 >>org.omg.CORBA.INTERNAL: EntryNotFoundException minor code: 494210B0 completed: No at com.ibm.ISecurityLocalObjectBaseL13Impl.PrincipalAuthFailReason. map_auth_fail_to_minor_code(PrincipalAuthFailReason.java:99)
[7/31/02 15:38:48:452 CDT] 27318f5 NTRegistryImp E CWSCJ0070E: No privilege id configured for: testuser
この原因としては、クライアントによってサーバーに送信されたユーザー ID が、 そのサーバーのユーザー・レジストリーに存在しないことが考えられます。
この問題を確認するには、 サーバーに送信されている個人証明書の項目が存在することを調べてください。 ユーザー・レジストリーの仕組みに応じて、 ネイティブ・オペレーティング・システムのユーザー ID、 または Lightweight Directory Access Protocol (LDAP) サーバー項目を調べます。
この問題を解決するには、そのユーザー ID をユーザー・レジストリー項目 (例えば、 オペレーティング・システム、LDAP ディレクトリー、またはその他のカスタム・レジストリー) に追加して、 個人証明書を識別してください。
このエラー・メッセージは、 PlantsByWebSphere Active X から EJB へのブリッジを使用する ActiveX クライアント・サンプル・アプリケーションを インストールすると、表示されます。
原因は、サーバー証明書が、 client.ssl.props ファイルで指定されるクライアント・トラストストアにないためです。 「com.ibm.ssl.enableSignerExchangePrompt」署名者プロパティーが true に設定されていても、 自動切り替えプロンプトはコマンド行プロンプトしかサポートしていません。 サンプル・アプリケーションがグラフィカル・ユーザー・インターフェースに依存して、 コマンド・プロンプトへのアクセスを提供しない場合 (例えば標準入力や標準出力を使用する場合)、 自動切り替えプロンプトは機能しません。
この問題を修正するためには、 retrieveSigners ユーティリティーを使用して手動で証明書を取得します。
scriptCompatibility true を使用したマイグレーション後は、SSL 構成のすべての属性が管理コンソールから編集できなくなります。 特に、ハードウェアの暗号設定は、表示できなくなるか、編集不能になります。
scriptCompatibility true フラグを使用すると、SSL 構成は、リリース 6.1 でのサポートのための新しいフォーマットにマイグレーションされません。 構成が最新フォーマットにマイグレーションされないときに、サポートされない新規機能が追加されました。
この問題を解決するには、6.1 より古いフォーマットの SSL 構成定義に代わる 新しい SSL 構成定義を作成するか、あるいは引き続き、スクリプトによってそれらの構成を編集します。