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のトラストストア)にインストールするだけでよいという利点があります。 例:
-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を使用する
以下のコードを含むcontrast.policyファイルを作成します(もしくは、server.policyファイルにコードを追加します)。
<YourContrastJarPath>
はContrast JARファイルへのパスに置き換えてください。例:grant codeBase "file:<YourContrastJarPath>" { permission java.security.AllPermission; };
$WEBSPHERE_HOME/AppServer/profiles/AppSrv01/properties/server.policy
にcontrast.policy
ファイルを追加(append)します。wsadmin
ツールでセキュリティマネージャを有効にします。Jacl:
$AdminTask setAdminActiveSecuritySettings {-enforceJava2Security true}
Jython:
AdminTask.setAdminActiveSecuritySettings('-enforceJava2Security true')
ヒント
詳細については、Javaセキュリティマネージャやスクリプトを使用したJava 2セキュリティマネージャの有効/無効化についてのドキュメントを参照してください。