WebSphereでJavaエージェントを設定する

最初に、次のいずれかのリポジトリから、Contrast Javaエージェント(JARファイル)をダウンロードします。

WebSphereでContrastを実行する方法に応じて、以下を参考にしてJavaエージェントを設定してください。

注記

IBM J9では、共有クラス(Shared Classes)機能を使用する場合、Javaの計測API(Instrumentation API)でコアのJavaクラスを変更することができません。JVMパラメータに-Xshareclasses:noneを指定して、この機能を無効にする必要があります。

同様に、-Dcom.ibm.oti.shared.enabled=trueが設定されている場合、旧J9のJREでも問題が発生する可能性があります。

Websphereのトラストストアとキーストア

WebSphere は、Java JREの一部として組み込まれるトラストストアとは別に、独自のトラストストアとキーストアを保持します。エージェントは、WebSphereが初期化される前に起動するため、WebSphere独自のトラストストアは設定されません。そのため、エージェントは、JVMに特別な設定がされていない限り、 JavaのJRE/lib/security/cacertsファイルにあるデフォルトのトラストストアを使用します。

ただし、内部専用や自己署名証明書を使用するプロキシサーバが必要な場合などには、特定の追加手順が必要になります。選択できる方法は、次のとおりです。

  • JRE cacertsのトラストストアとWebSphereのトラストストアの両方に必要な証明書をインストールします。これにより、証明書チェーンがエージェントとWebアプリケーションの両方で検証されます。

  • 標準のトラストストアのシステムプロパティをJavaに指定し、トラストストアをWebSphereのトラストストアと同じものに変更します。その例を以下に記載します。この方法では、証明書を1つの場所(WebSphereのトラストストア)にインストールするだけでよいという利点があります。

エージェントがWebSphere独自のトラストストアを使用する場合の設定例(上記の2番目の方法):

-Djavax.net.ssl.trustStore=opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/DefaultCell01/nodes/DefaultNode01/trust.p12
-Djavax.net.ssl.trustStoreType=PKCS12
-Djavax.net.ssl.trustStorePassword=secret

WebSphere自体は、パスワードをエンコードする方法をサポートしていますが、WebSphereが起動する前に実行されるため、エージェントのトラストストアのパスワードを設定するときには使用できません。

WebsphereでContrastを追加する

WebSphereを自分で起動する場合は、セルのディレクトリにあるserver.xmlファイルにContrastのJVMパラメータを追加します。<CellName><NodeName>の箇所を、セルとノードの名前に置き換えます。<YourContrastJarPath>Contrast JARファイルへのパスに置き換えてください。例:

<WebsphereDirectory>\AppServer\profiles\AppSrv01\config\cells\<CellName>\nodes\<NodeName>\servers\server1\server.xml

<jvmEntries genericJvmArguments="-javaagent:<YourContrastJarPath> -Xshareclasses:none">
   ...
</jvmEntries> 

WebSphere管理コンソールでContrastを追加する

Websphereサポートサイトの手順に従って、WebSphereの管理コンソールからContrastを追加することもできます。

WebSphereでJava2を使用する

  1. 以下のコードを含むcontrast.policyファイルを作成します(もしくは、server.policyファイルにコードを追加します)。<YourContrastJarPath>Contrast JARファイルへのパスに置き換えてください。例:

    grant codeBase "file:<YourContrastJarPath>" {
      permission java.security.AllPermission;
    };
  2. $WEBSPHERE_HOME/AppServer/profiles/AppSrv01/properties/server.policycontrast.policyファイルを追加(append)します。

  3. wsadminツールでセキュリティマネージャを有効にします。

    • Jacl:$AdminTask setAdminActiveSecuritySettings {-enforceJava2Security true}

    • Jython:$AdminTask.setAdminActiveSecuritySettings('-enforceJava2Security true')

    ヒント

    詳細については、Javaセキュリティマネージャスクリプトを使用したJava 2セキュリティマネージャの有効/無効化についてのドキュメントを参照してください。