|
|
|
|
|
トラブルシューティング
ここでは、次の内容について説明します。
注記 ここで述べられている問題は、CORBA アプリケーションで SSL プロトコルと証明書による認証を使用している場合に当てはまります。
ULOG および ORB トレース機能の使用
通常、オブジェクト・リクエスト・ブローカ (ORB) は、重大な障害を ULOG ファイルに書き込みます。CORBA C++ ORB では、ORB 内部トレース機能を有効にすることで、ULOG ファイルの情報以外の情報を参照することもできます。
ULOG ファイルを見ると、リモート ORB プロセスはデフォルトでは、データを APPDIR の ULOG ファイルには書き込みません。
ULOG ファイルに書き込みます。 c:\ulog ディレクトリの ULOG ファイルに書き込みます。ULOGPFX 環境変数を設定すると、リモート ORB 用の ULOG ファイルの場所を管理できます (たとえば、ULOG ファイルの場所を APPDIR に設定し、すべての情報が同じ ULOG ファイルに格納されるようにすることができます)。ULOGPFX 環境変数を次のように設定します。
Windows 2000
set ULOGPFX=%APPDIR%\ULOG
UNIX
setenv ULOGPFX $APPDIR/ULOG
ORB トレース機能を有効にするには、次の手順を実行します。
APPDIR に trace.dat という名前のファイルを作成します。trace.dat 内で、
all=on が指定されている必要があります。
OBB_TRACE_INPUT 環境変数を設定し、
trace.dat ファイルを参照してからアプリケーションを実行するようにしま
す。
set OBB_TRACE_INPUT=%APPDIR%\trace.dat
ORB トレース機能を別のファイルに送信する場合、次の行を trace.dat ファイルに追加します。
output=obbtrace%p.log
このコマンドは、トレース出力を、実行中のプロセスにちなんだ名前のファイルに送信します。たとえば、UNIX の ORB トレース機能を、NFS がマウントされたドライブに対して使用する場合に実行できます。この場合、トレース文ごとにユーザ・ログがファイルを開き、書き込み、閉じるために、トレースの性能は遅くなります。
CORBA::ORB_init の問題
ORB_init ルーチンは、内部 ORB トレース機能を実行しないので、無効な引数の処理に対するトレース出力を確認できません。したがって、ORB_init ルーチンに渡された引数を二重チェックする必要があります。
ORB_init ルーチンの実行中に CORBA::BAD_PARAM 例外が発生した場合は、必要なすべての引数に値が指定されていることを確認してください。また、特定の有効な値のセットからの値を予測している引数に正しい値があることも確認してください。ORB_init ルーチンの引数の値では、大文字と小文字を区別するので注意してください。
CORBA::NO_PERMISSION 例外が発生し、SSL 引数が ORB_init ルーチンに指定された場合、セキュリティ・ライセンスが有効になっていることを確認してください。また、指定した暗号化レベルが、セキュリティ・ライセンスでサポートされている暗号化レベルを超えていないことを確認してください。
ORB_init ルーチンの実行中に CORBA::IMP_LIMIT 例外が発生した場合は、システム・プロパティの ORBport と ORBSecurePort に同じ値が指定されていることを確認してください。
ORB_init ルーチンの実行中に CORBA::Initialize 例外が発生した場合は、OrbId または configset が有効であることを確認してください。
セキュア・ソケット・レイヤ (SSL) 引数が ORB_init ルーチンに渡されている場合、ORB は、SSL プロトコルをロードおよび初期化しようとします。SSL 引数が渡された場合、ORB は、SSL プロトコルを初期化しようとします。
ORB は、Bootstrap オブジェクトの新しい URL アドレス形式を認識しないので、corbaloc または corbalocs URL アドレス形式を指定した場合、ORB は、ORB_init ルーチンの実行時に SSL プロトコルのロードを試行しません。
SSL 引数を ORB_init ルーチンに対して指定した場合は、以下をチェックします。
maxCrypto システム・プロパティ用に指定された値が、minCrypto システム・プロパティ用に指定された値より低いこと。この 2 つのプロパティの値は、ライセンスに適した範囲内にある必要があります。ORB_init ルーチンは、デジタル証明書のルックアップを実行しないので、ダイナミック・ライブラリがロードされない、不明のファイルまたは障害が発生したファイルを探してください。また、ダイナミック・ライブラリがロードされていることも確認してください。ORB トレース機能は、ダイナミック・ライブラリがロードされたかどうかに関する情報を提供します。問題が続く場合は、ORB トレース機能を有効にします。ORB トレース機能は、liborbssl ダイナミック・ライブラリがロードされて初期化されたときに発生する SSL の障害をログに記録します。
パスワード認証の問題
パスワード認証に corbalocs URL アドレス形式を使用しているときにクライアント・アプリケーションが失敗した場合は、以下をチェックします。
ORB_init ルーチンに対して指定すると、以下の場合にエラーが発生します。ULOG ファイルには、非 GIOP メッセージを受信したことが記録されます。IIOP リスナ/ハンドラが SSL プロトコル用にコンフィギュレーションされているものの、セキュリティで保護されている接続を示す corbalocs 接頭辞なしに CORBA クライアント・アプリケーションが TOBJADDR オブジェクトを使用している場合に、ULOG ファイルに、非 GIOP メッセージを受信したことが記録されます。
証明書による認証の問題
証明書による認証に corbalocs URL アドレス形式を使用しているときにクライアント・アプリケーションが失敗した場合は、以下をチェックします。
ORB_init ルーチンに対して指定すると、以下の場合にエラーが発生します。ULOG ファイルには、非 GIOP メッセージを受信したことが記録されます。ULOG ファイルに書き込まれ、ORB トレース出力にも表示されます。エラーが発生しない場合、問題は認証プロセスにあります。ULOG ファイルには、問題を示す以下のエラー文のいずれかが含まれています。
Couldn't connect to an LDAP serverCouldn't find a filter that matched the client certificateThe client certificate was not found in LDAPThe private key file could not be foundThe passphrase used to open the private key is not correctThe public key from the client certificate did not match the private keyほかの認証に関する問題が発生する場合もあります。発生の可能性がある認証エラーの種類については、Tobj::Bootstrap::resolve_initial_references の問題を参照してください。
注記 初期化プロセスの時点で発生した障害は、IIOP リスナ/ハンドラの問題ではありません。
Tobj::Bootstrap::resolve_initial_references の問題
corbaloc または corbalocs URL アドレス形式で Tobj::Bootstrap::resolve_initial_references を実行しているときに障害が発生した場合、CORBA::InvalidDomain 例外が発生します。この例外は、内部で発生する CORBA::NO_PERMISSION 例外または CORBA::COMM_FAILURE 例外をマスクする場合があります。ULOG ファイルを参照し、ORB トレース機能を有効にしてエラーの詳細を確認してください。以下のエラーが発生する可能性があります。
ULOG ファイルには、非 GIOP メッセージを受信したことが示されます。USER_AUTH に設定されていること、および指定したユーザ名が、認証呼び出しに渡されたプリンシパル名に一致していることを確認します。また、ユーザ名が 30 文字を超えていないこともチェックしてください。ほかの認証に関する問題が発生する場合もあります。発生の可能性がある認証エラーの種類については、デジタル証明書のトラブルシューティングのヒントを参照してください。
注記 Tobj_Bootstrap::resolve_initial_references() メソッドの Java インプリメンテーションは、InvalidDomain 例外をスローしません。corbaloc または corbalocs URL アドレス形式を使用している場合、Tobj_Bootstrap::resolve_initial_references() メソッドは、内部で InvalidDomain 例外をキャッチし、COMM_FAILURE を例外としてスローします。このメソッドは、下位互換性を提供するためにこのように機能します。
IIOP リスナ/ハンドラの起動の問題
ここでは、IIOP リスナ/ハンドラの起動時に発生する可能性がある問題について説明します。
IIOP リスナ/ハンドラを起動しているときに障害が発生した場合、ULOG ファイルをチェックしてエラーの詳細を確認します。IIOP リスナ/ハンドラは、CLOPT パラメータで指定した SSL 引数の値が有効かどうかを確認します。値のいずれかが無効な場合、対応するエラーが ULOG ファイルに記録されます。このチェックは、ORB で実行される引数チェックに似ています。
IIOP リスナ/ハンドラは、-m オプションが指定されない限りプロセスを開始しません。ISH は、SSL ライブラリを実際にロードおよび初期化するプロセスです。ISH プロセスの SSL ライブラリのロードおよび初期化で問題が発生した場合、ISH プロセスがクライアント・アプリケーションの要求の処理を開始するまで、エラーは ULOG ファイルに記録されます。
IIOP リスナ/ハンドラ・プロセスの起動で問題が発生したと思われる場合は、ULOG ファイルを確認してください。
コンフィギュレーションの問題
ここでは、セキュリティ使用時に発生する一般的なコンフィギュレーションの問題を解決する方法について説明します。
-ORBpeerValidate コマンド行オプションと -v オプションは、ピア検証の規則のチェックを制御しません。このシステム・プロパティとオプションは、プリンシパルの接続先マシンのホスト名に対するピア証明書で指定されたホスト名のチェックのみを制御します。%TUXDIR%\udataobj\security\certs\peer_val.rul に対して空のファイルを作成することです。CORBA アプリケーションを構築するスクリプトを記述する場合、スクリプトで peer_val.rul ファイルを登録できません。-r ではなく -R であることを確認します。-r を使用する場合、IIOP リスナ/ハンドラは SSL プロトコルを使用しますが、再調整の間隔は使用されません。また、ULOG ファイルには、IIOP リスナ/ハンドラで不明なオプションを指定したことが記録されます。 IIOP リスナ/ハンドラが再調整を実行しているかどうかを判定する別の方法は、クライアント側で ORB トレース機能を有効にし、暗号スイート調整コールバックがコンフィギュレーション済みの再調整の間隔を呼び出しているかどうかをチェックすることです。再調整が発生するためには、クライアント・アプリケーションが要求を送信している必要があります。
UBBCONFIG ファイルで SECURITY パラメータを APP_PW 以上になるように定義しており、SSL プロトコルを使用するように (ただし相互認証ではなく) IIOP リスナ/ハンドラをコンフィギュレーションしている場合、IIOP リスナ/ハンドラと通信するために corbalocs URL アドレス形式でパスワード認証を使用する必要があります。証明書による認証を使用しようとしても、IIOP リスナ/ハンドラは、SSL 接続を確立するときにプリンシパルに証明書を要求しないので、IIOP リスナ/ハンドラは、プリンシパルの ID を BEA Tuxedo の ID にマップできません。
SSL プロトコルでコールバック・オブジェクトを使用する場合の問題
共同クライアント/サーバ・アプリケーションがあり、そのクライアント側で corbalocs URL アドレス形式を使用するか、クリデンシャルを要求してセキュリティ要件を指定している場合、ORB_init ルーチンで -ORBsecurePort システム・プロパティを使用して、使用するセキュリティ保護ポートを指定する必要があります。
-ORBsecurePort システム・プロパティを指定しない場合、CORBA::NO_PERMISSION 例外が発生してサーバ登録が失敗します。これが問題かどうかを検証するには、ORB トレース機能を有効にして、以下のトレース出力を探します。
TCPTransport::Listen: FAILURE: Attempt to listen on clear port while Credentials require SSL be used
コールバック・オブジェクトで SSL プロトコルを使用する場合、共同クライアント/サーバ・アプリケーションは、証明書による認証で SecurityLevel2::PrincipalAuthenticator::authenticate() メソッドを使用する必要があります。それ以外の場合、共同クライアント/サーバ・アプリケーションは、IIOP リスナ/ハンドラ (ここでは、SSL 接続のイニシエータ) に対して自身を識別するための証明書を持ちません。
デジタル証明書のトラブルシューティングのヒント
通常、デジタル証明書の問題は、以下の場合に起こります。
trust_ca.cer ファイルで定義した認証局から受け取ったものではない場合。trust_ca.cer ファイルの認証局が無効な場合に、問題が発生することがあります。CommonName 属性で指定します。ホスト名と CommonName 属性は、正確に一致している必要があります。-ORBpeerValidate システム・プロパティを none に設定し、再度 ORB_init ルーチンを実行すると、このエラーを検証できます。
理由がわからずにデジタル証明書が拒否された場合は、次の手順を実行します。
KeyUsage プロパティおよび BasicConstraints プロパ
ティを確認します。感嘆符が付いた黄色い三角形のマークは、そのプロパ
ティに問題があることを示します。プロパティにそのマークが付いたデジタ
ル証明書は、BEA Tuxedo ソフトウェアによって拒否されます。
|
|
|
|
|
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|