|
|
トラブルシューティング
ここでは、次の内容について説明します。
注記 ここで述べられている問題は、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 server
Couldn't find a filter that matched the client certificate
The client certificate was not found in LDAP
The private key file could not be found
The passphrase used to open the private key is not correct
The 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.
|