セキュリティーの SSL エラー

Secure Sockets Layer (SSL) を構成、または使用可能にした後で、さまざまな問題が 発生することがあります。SSL の構成後、デプロイメント・マネージャーを停止できなくなる 場合があります。また、HTTPS を使用したリソースにアクセスできなくなることもあります。 クライアントとサーバー間のネゴシエーションが、適切なセキュリティー・レベルで できなくなる場合があります。ここで取り上げる問題は、さまざまな可能性のごく一部にすぎません。 WebSphere® Application Server を正常に運用するためには、これらの問題の解決が必須です。

どのような問題が発生しましたか?

Secure Sockets Layer の構成後にデプロイメント・マネージャーを停止する

Secure Sockets Layer レパートリーを構成した後、ノード・エージェントを停止しないでデプロイメント・マネージャーを停止すると、次の回にデプロイメント・マネージャーを起動したときに以下のようなエラー・メッセージが表示されます。

CWWMU0509I: サーバー "nodeagent" にアクセスできません。It appears to be stopped.
CWWMU0211I: エラーの詳細については次のファイルを参照してください:
           /opt/WebSphere/AppServer/logs/nodeagent/stopServer.log

このエラーは、デプロイメント・マネージャーが各ノード・エージェントに新しい SSL 証明書を伝搬しなかったために起こります。 ノード・エージェントはデプロイメント・マネージャーよりも古い証明ファイルを使っており、証明ファイルに互換性がありません。 この問題に対処するには、 ノード・エージェントとデプロイメント・マネージャーのプロセスを手動で停止します。

[Windows]プロセスを終了するには、タスク・マネージャーを使用します。

[AIX HP-UX Solaris]コマンドを実行してプロセスを終了します。

[z/OS]プロセスを終了するには、MVS™ コンソールを使用して c process_name と入力します。

[AIX Solaris HP-UX Linux Windows][z/OS]停止する個々のプロセスを特定する際には、一定の項目について考慮する必要があります。 WebSphere Application Server は、停止される各プロセスについてプロセス ID を pid ファイルに保管するため、これらの *.pid ファイルを見つける必要があります。 例えば、スタンドアロン・インストール操作の server1.pid は、install_root/logs/server1.pid にあります。

[IBM i]停止する個々のプロセスを特定する際には、一定の項目について考慮する必要があります。 WebSphere Application Server は、停止される各プロセスについてプロセス ID を pid ファイルに保管するため、これらの *.pid ファイルを見つける必要があります。 例えば、スタンドアロン・インストール操作の server1.pid は、app_server_root/logs/server1.pid にあります。

[AIX Solaris HP-UX Linux Windows][z/OS]

HTTPS を使ったリソースへのアクセス

Secure Sockets Layer (SSL) の URL (https: で始まる) を使用するリソースにアクセスできない場合、 または、SSL の問題を示すエラー・メッセージが表示される場合は HTTP サーバーが SSL 用に正しく構成されているか確認します。 URL https://host_name を入力し、SSL を使用している HTTP サーバーの「ようこそ」ページをブラウズします。

HTTPS ではなく HTTP によってページにアクセスできる場合は、HTTP サーバーに問題があります。
  • SSL を正しく使用できるようにするための説明については、 ご使用の HTTP サーバーの資料を参照してください。 IBM® HTTP Server または Apache を使用している場合は、http://www.ibm.com/software/webservers/httpservers/library.html にアクセスしてください。 「Frequently Asked Questions」>「SSL」の順にクリックします。
  • IBM 鍵管理 (IKeyman) ツールを使用して証明書と鍵を作成する場合は、IBM 鍵管理ツールを使用して鍵データベース (KDB) ファイルを作成する際に、パスワードをファイルに隠しておくことを忘れないでください。
    1. KDB ファイルが作成されたディレクトリーに移動し、.sth ファイルがあるかどうかを確認します。
    2. ファイルがない場合は、IBM 鍵管理ツールを使用して KDB ファイルを開き、「鍵データベース・ファイル (Key Database File)」>「パスワードを隠す (Stash Password)」の順にクリックします。 「The password has been encrypted and saved in the file」というメッセージが表示されます。

HTTP サーバーが SSL 暗号化要求を正常に処理する場合、 または、HTTP サーバーが関係しない (例えば、トラフィックが Java™ クライアント・アプリケーションから WebSphere Application Server が ホストするエンタープライズ Bean に直接送信されるか、 あるいは WebSphere Application Server セキュリティーを使用可能にした後にのみ問題が発生する) 場合には、 どのようなエラーが表示されますか?

[z/OS]システム SSL: System Secure Sockets Layer (SSL) 呼び出し可能サービスのプログラミング・インターフェースの使用に関する情報は、「z/OS® System SSL (Secure Sockets Layer) プログラミング (SD88-6252)」を参照してください。

[AIX Solaris HP-UX Linux Windows][IBM i]プログラマチックにクレデンシャルを作成する際に、「org.omg.CORBA.INTERNAL: EntryNotFoundException」または「NTRegistryImp E CWSCJ0070E: 以下に対して特権 ID が構成されていません」というエラー・メッセージが表示されます。

セキュリティー関連の問題を診断および解決するための一般的なヒントについては、セキュリティー・コンポーネントのトラブルシューティングのヒントを参照してください。

類似した問題が見つからない場合、 または提供されている情報では問題が解決されない場合は、 IBM からのトラブルシューティングのヘルプを参照してください。

javax.net.ssl.SSLHandshakeException - The client and server could not negotiate the desired level of security. Reason: handshake failure

次の例のような Java 例外スタックが表示される場合、
[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)
次のような原因が考えられます。
  • クライアントとサーバーの間に共通する暗号がない。
  • 正しいプロトコルを指定していない。
以下の方法で、これらの問題を解決します。
  1. [AIX Solaris HP-UX Linux Windows][z/OS]SSL 設定を確認します。管理コンソールで、「セキュリティー」>「SSL 証明書および鍵管理」とクリックします。 「構成設定」の下で「エンドポイント・セキュリティー構成の管理」>「endpoint_configuration_name」をクリックします。「関連項目」の下で「SSL 構成」>「SSL_configuration_name」とクリックします。 install_root/properties/sas.client.props ファイルを表示することにより、このファイルを手動で参照することもできます。
  2. [IBM i]SSL 設定を確認します。管理コンソールで、「セキュリティー」>「SSL 証明書および鍵管理」とクリックします。 「構成設定」の下で「エンドポイント・セキュリティー構成の管理」>「endpoint_configuration_name」をクリックします。「関連項目」の下で「SSL 構成」>「SSL_configuration_name」とクリックします。 app_server_root/properties/sas.client.props ファイルを表示することにより、このファイルを手動で参照することもできます。
  3. com.ibm.ssl.protocol ファイルで指定されたプロパティーを確認して、指定されたプロトコルを判別します。
  4. com.ibm.ssl.enabledCipherSuites インターフェースで指定された暗号タイプを確認します。 リストに暗号タイプを追加することもできます。 どの暗号スイートが現在使用可能になっているかを確認するには、 「Quality of protection settings (QoP)」をクリックして、 「暗号スイート」プロパティーを探します。
  5. 異なるクライアント・プロトコルまたはサーバー・プロトコル、および暗号選択を使用することにより、 プロトコルまたは暗号の問題を解決します。 一般的なプロトコルは SSL または SSLv3 です。
  6. [AIX Solaris HP-UX Linux Windows][IBM i]128 ビットではなく、40 ビットの暗号を選択する。 Common Secure Interoperability Version 2 (CSIv2) の場合、sas.client.props ファイルで、 次のプロパティーをいずれも false に設定します。あるいは、 管理コンソール設定で security level=medium と設定します。
    • com.ibm.CSI.performMessageConfidentialityRequired=false
    • com.ibm.CSI.performMessageConfidentialitySupported=false

javax.net.ssl.SSLHandshakeException: unknown certificate

次の例のような Java 例外スタックが表示される場合は、クライアントのトラストストア・ファイルにサーバー用の個人証明書がないことが原因となっている可能性があります。
ERROR: Could not get the initial context or unable to look up the starting context. 
終了します。
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]
以下の方法でこの問題を解決します。
  1. クライアントのトラストストア・ファイルをチェックして、 サーバー個人証明書からの署名者証明書があるかどうかを確認します。 自己署名のサーバー個人証明書の場合、署名者証明書が、個人証明書の公開鍵です。 認証局 (CA) 署名のサーバー個人証明書の場合、 署名者証明書が、個人証明書に署名した CA のルート CA 証明書です。
  2. サーバー署名者証明書をクライアントのトラストストア・ファイルに追加します。

javax.net.ssl.SSLHandshakeException: bad certificate

以下の状態が発生した場合は、Java 例外スタック・エラーが表示されることがあります。
  • 個人証明書が、SSL 相互認証に使用されるクライアントの鍵ストアに存在します。
  • 署名者証明書がサーバーのトラストストア・ファイルに抽出されないために、サーバーが SSL ハンドシェークを行う際に証明書を信頼できません。
以下のメッセージは、Java 例外スタック・エラーの例です。
ERROR: Could not get the initial context or unable to look 
up the starting context. 終了します。
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 証明書です。

この問題を解決するには、 クライアント署名者証明書をサーバーのトラストストア・ファイルに追加します。

[AIX Solaris HP-UX Linux Windows][IBM i]

プログラマチックにクレデンシャルを作成する際に、 「org.omg.CORBA.INTERNAL: EntryNotFoundException or NTRegistryImp E CWSCJ0070E: No privilege id configured for:」というエラーが発生する

SSL 相互認証を使用して WebSphere Application Server からクレデンシャルを要求する際に、クライアント・アプリケーションで次の例外が表示される場合があります。
ERROR: Could not get the initial context or unable to look up the starting context. 
終了します。
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)
または WebSphere Application Server から、以下のような同時エラーが返される場合があります。
[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 ディレクトリー、またはその他のカスタム・レジストリー) に追加して、 個人証明書を識別してください。

GUI アプリケーション・クライアントで「カタログ」タブレットが ブランクである (項目が表示されない)

このエラー・メッセージは、 PlantsByWebSphere Active X から EJB へのブリッジを使用する ActiveX クライアント・サンプル・アプリケーションを インストールすると、表示されます。

原因は、サーバー証明書が、 client.ssl.props ファイルで指定されるクライアント・トラストストアにないためです。 「com.ibm.ssl.enableSignerExchangePrompt」署名者プロパティーが true に設定されていても、 自動切り替えプロンプトはコマンド行プロンプトしかサポートしていません。 サンプル・アプリケーションがグラフィカル・ユーザー・インターフェースに依存して、 コマンド・プロンプトへのアクセスを提供しない場合 (例えば標準入力や標準出力を使用する場合)、 自動切り替えプロンプトは機能しません。

注: クライアント・テクノロジー・サンプルの アプレット・クライアントは、コマンド・プロンプトへのアクセス権を持たないため、 自動切り替えプロンプトを表示できません。したがって、アプレット・クライアントは 自動切り替えプロンプト機能を当てにすることはできません。

この問題を修正するためには、 retrieveSigners ユーティリティーを使用して手動で証明書を取得します。

-scriptCompatibility true を使用したマイグレーション後の、 SSL 構成の変更

scriptCompatibility true を使用したマイグレーション後は、SSL 構成のすべての属性が管理コンソールから編集できなくなります。 特に、ハードウェアの暗号設定は、表示できなくなるか、編集不能になります。

scriptCompatibility true フラグを使用すると、SSL 構成は、バージョン 6.1 およびそれ以降のリリースでのサポートのための新しいフォーマットにマイグレーションされません。 構成が最新フォーマットにマイグレーションされないときに、サポートされない新機能が追加されました。バージョン 6.1 より前のリリースからマイグレーションする場合、convertSSLConfig タスクを使用して SSL 構成情報を集中 SSL 構成形式に変換できます。

NOTRUST オプションが指定されたデジタル証明書の定義時にスタンドアロン構成に失敗する

NOTRUST オプションを指定してデジタル証明書を定義する場合、以下のエラー・メッセージが表示される可能性があります。

Trace: 2008/06/18 16:57:57.798 01 t=8C50B8 c=UNK key=S2 (0000000A) 
Description: Log Boss/390 Error
from filename: ./bbgcfcom.cpp
at line: 376
error message: BBOO0042E Function AsynchIOaccept failed with RV=-1, RC=124, RSN=050B0146, ?EDC5124I
Too many open files. (errno2=0x0594003D)?? 

このエラーが表示されたら、'D OMVS,P と入力します。 NOTRUST の問題がある場合は、「OPNSOCK」に大きな数値が表示されます。

ご使用のデジタル証明書を確認して、NOTRUST オプションが付いていないことを確認してください。 これは、証明書の作成に使用する CERTAUTH の有効期限を過ぎた日付で証明書が作成された場合に発生することがあります。

LDAP リポジトリーを SSL で構成する場合に問題が発生する

LDAP リポジトリーを SSL で構成する場合には、ノードを管理エージェントに登録する前に、ノード上の LDAP リポジトリーを構成する必要があります。

管理エージェントにノードを登録した後で LDAP リポジトリーを構成しようとすると、統合リポジトリーは、ノードのトラストストアではなく管理エージェントのトラストストアで SSL 証明書を探します。

SHA384withECDSA にチェーン証明書を作成するときの問題

証明書を SHA384withECDSA に変換済みで、「SSL 証明書および鍵管理」->「鍵ストアおよび証明書」-> 「鍵ストア」 ->「個人証明書」をクリックすることで管理コンソールからチェーン証明書を作成している場合、 サポートされる鍵サイズは 384 になります。そうでない場合は、証明書を作成できません。

解決するには、Javascript を使用可能にして、パネルに適切な鍵のサイズを表示します。


トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_sslprobs
ファイル名:rtrb_sslprobs.html