Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド

Sun Web サーバー の設定

Sun Web サーバー では、 のインストールウィザードを使用してロードバランサプラグインをインストールするとき、すべての必要な設定がインストールウィザードによって自動的に行われます。手動での設定は必要ありません。Enterprise Server に付属のロードバランサプラグインは、次のバージョンの Sun Web サーバー をサポートしています。

ただし、GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/ からロードバランサプラグインをダウンロードして、手動で設定を変更する必要があります。プラグインのインストールおよび設定方法については、『Sun GlassFish Enterprise Server 2.1 Installation Guide』を参照してください。

ProcedureSun Web サーバー を設定する

始める前に

注 –

Enterprise Server では、次の手順はインストールプログラムによって自動的に実行されます。GlassFish v2.1 を使用している場合は、次の手順を手動で実行する必要ががあります。


  1. Web サーバーインスタンスの magnus.conf ファイルに、次の行を追加します。

    ##BEGIN EE LB Plug-in Parameters
    Init fn="load-modules"
    shlib="web-server-install-dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##END EE LB Plug-in Parameters=
  2. まだ存在しない場合、次の行を追加します。

    Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
  3. ファイル web-server-install-dir/config/obj.conf で、文字列 nametrans が最初に出現する箇所の前に、次の内容を 1 行で挿入します。

    Nametrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web-server-install-dir/config/loadbalancer.xml"

    obj.conf ファイル内での NameTrans エントリの表示順序は非常に重要です。インストーラは NameTrans エントリを正しい場所に配置しますが、ユーザーが別の目的で obj.conf を編集している場合には、このエントリの順序を正しく保持する必要があります。特に、ロードバランサ情報は、document-root 関数の前に配置する必要があります。obj.conf ファイルの詳細については、docs.sun.com で『Sun Java System Web Server 7.0 Administrator’s Configuration File Reference』を参照してください。

  4. ファイル web-server-install-dir/config/obj.conf に次の行を追加します。

    <Object name = "lbplugin"> 
    ObjectType fn="force-type" type="magnus-internal/lbplugin"
    PathCheck fn="deny-existence" path="*/WEB-INF/*"
    Service type="magnus-internal/lbplugin" fn="service-passthrough"
    Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
    </Object>
  5. web-server-install-dir/start スクリプトを編集し、app-server-install-dir/lib/lbplugin/lib が含まれるように LD_LIBRARY_PATH の値を更新します。

    app-server-install-dir/lib/lbplugin/lib ディレクトリには、ロードバランサプラグインに必要なバイナリが含まれています。

  6. (省略可能) 新しいDAS ベースのロードバランサ管理を行う場合は、SSL を使用するように Web サーバーを設定します。

    Web Server 6.1 での詳細な手順については、「Sun Web サーバー 6.1 用に SSL モードで HTTP ロードバランサを設定する」を参照してください。

    Web Server 7 での詳細な手順については「Sun Web サーバー 7 用に SSL モードで HTTP ロードバランサを設定する 」を参照してください。

  7. Web サーバーがまだ動作していない場合、Web サーバーを起動します。

自動適用を使用するための Sun Java System Web Server の設定

Enterprise Server 9.1 で提供される自動適用は、ロードバランサの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信する機能です。以下の手順では、この機能を使用するために Sun Java System Web Server (バージョン 6 および 7) を設定する方法を説明します。

ProcedureSun Web サーバー 6.1 用に SSL モードで HTTP ロードバランサを設定する


注 –

この節の手順は、ロードバランサプラグインの自動適用機能を使用する場合にのみ実行する必要があります。この機能は、ロードバランサプラグインの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信するために役立ちます。


  1. ブラウザを使用して Web Server の管理 GUI にアクセスし、ログインします。

  2. サーバーインスタンスを選択して「Manage」をクリックします。

  3. 「Security」タブをクリックします。

  4. ユーザー名とパスワードを入力して、信頼データベースを初期化します。これは、certutil コマンドまたは GUI のどちらかを使用して行うことができます。信頼データベースの初期化は、certutil コマンドの次のオプションを使用して実行できます。

    certutil -N -P  "https-instance-name-hostname-" -d .
    • certutil から入力を求められたら、キーを暗号化するためのパスワードを入力します。キーの暗号化に使用するパスワードを入力します。このパスワードの長さは少なくとも 8 文字以上にし、アルファベット以外の文字を少なくとも 1 つ以上含めるようにしてください。

    • 新しいパスワードを入力するように求められたら、パスワードを指定します。

  5. 次のコマンドを使用して、サンプルのローカル認証局 (CA) を作成します。

    certutil -S -P "https-boqueron.virkki.com-boqueron-" 
    -d . 
    -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" 
    -x -t "CT,CT,CT" 
    -m 101 -v 99 -5
    1. 証明書の種類 (0 ~ 7) を入力するように求められたら、SSL CA を表す「5」を入力します。プロンプトがもう一度表示されたら、「9」を指定します。

    2. 「Is this a critical extension [y/n]?」(これは重要な拡張ですか) という質問が表示されたら、「y」を指定します。

  6. 前の手順で作成したサンプル CA を使用して、証明書を生成します。

    certutil -S -P "https-instance-name-hostname-"
    -d . -n MyServerCert -s "CN=boqueron.virkki.com,C=US"
    -c SelfCA -t "u,u,u" -m 102 -v 99 -5
    1. 証明書の種類 (0 ~ 7) を入力するように求められたら、SSL サーバーを表す「1」を入力します。プロンプトがもう一度表示されたら、「9」を指定します。

    2. 「Is this a critical extension [y/n]?」(これは重要な拡張ですか) という質問が表示されたら、「y」を指定します。

  7. 「設定の変更」>「リスナーソケットを編集」をクリックして、現在の HTTP リスナーソケットを編集します。セキュリティーを有効にして、前の手順で作成して証明書を選択します。

    GUI を使用しない場合は、エントリを「タグを変更して、security の値を true に設定します」と読み替えてください。追加する本体の内容と終了タグを含むように、タグを変更する必要があります。タグを追加するときは、キャリッジリターンを必ず削除してください。

    LS id="ls1" port="80" servername="$DEPLOY-INSTANCE" 
    defaultvs="https-$DEPLOY-INSTANCE" ip="any" security="true" 
    acceptorthreads="1" blocking="false"> 
    <SSLPARAMS servercertnickname="$HOST-DOMAIN" ssl2="off"
    ssl2ciphers="-rc4,-rc 4export,-rc2,-rc2export,-desede3,-des" 
    ssl3="on"
    tls="on"
    ssl3tlsciphers="-rsa_rc4_128_sha,+rsa_rc4_128_md5,-rsa_rc4_56_sha,-rsa_rc4_40_md5
    +rsa_3des_sha,+rsa_des_sha,-rsa_des_56_sha,-rsa_rc2_40_md5,
    -rsa_null_md5,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,
    +fips_3des_sha,-fips_des_sha" tlsrollback="on" 
    clientauth="off"/>
    </LS>

ProcedureSun Web サーバー 6.1 用の DAS 証明書をエクスポートおよびインポートする

  1. Enterprise Server with HADB バンドルを使用している場合は、次のコマンドを実行して DAS 証明書をエクスポートします。

    <as home>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、次のコマンドを使用して DAS 証明書をエクスポートする必要があります。

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      ここで、<GLASSFISH_HOME> は Application Server のインストールディレクトリ、<DOMAIN_NAME> は証明書のエクスポート元のドメインを示します。

    • 証明書ファイルを Web サーバーの構成ディレクトリにコピーします。

  2. Enterprise Server with HADB バンドルを使用している場合、次のコマンドを使用して、DAS 証明書を Web Server インスタンスにインポートします。

    <webserver home>/bin/https/admin/bin/pk12util-i sjsas.p12-d <webserver
    home>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver home>/bin/https/admin/bin/certutil -M -n s1as -t "TCu,Cu,Tuw"
    -d alias -P <instance-name>-<hostname>-

    このコマンドにより、Application Server CA が、クライアント証明書およびサーバー証明書の両方に署名するための信頼済み CA になります。

    • GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、NSS セキュリティーツールの certutil を使用して作成された rfc ファイルから DAS 証明書をインポートします。

      <webserver_home>/bin/certutil -A -a -n s1as -t "TCu,Cu,Tuw" -i s1as.rfc -d alias -P <instance-name>-<hostname>-

      <webserver_home> は、Web サーバーのインストールディレクトリです。

      次のコマンドを使用することで、この証明書の存在を確認できます。このコマンドは、デフォルトのサーバー証明書を含むその他の CA 証明書とともに s1as 証明書を一覧表示します。コマンドは必ず 1 行で入力してください。

      <WS_INSTALL_ROOT>/bin/certutil -L -d
      <WS_INSTALL_ROOT>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config
  3. obj.conf に次の行が含まれていない場合は、ファイルの末尾に追加してください。Enterprise Server with HADB バンドルを使用している場合、この手順はインストールプログラムによって自動的に実行されます。

    <Object ppath="*lbconfigupdate*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    <Object>
    <Object ppath="*lbgetmonitordata*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    </Object>
  4. 「設定の確認」で説明されている手順を使用することにより、上記の設定を DAS から確認できます。ローカル CA を使用する代わりに、ほかの任意の CA およびサーバー証明書を使用できます。その場合、前の節の手順 5 および 6 は省略できますが、ほかの CA から入手したサーバー証明書をインポートする必要があります。

ProcedureSun Web サーバー 7 用に SSL モードで HTTP ロードバランサを設定する

  1. (省略可能) 次のコマンドを使用して、NSS データベースを作成します。NSS データベースが存在している場合は、この手順は必要ありません。コマンドは必ず 1 行で入力してください。

    webserver-install-dir/bin/certutil -N -d 
    /webserver-install-dir/admin-server/config-store/config-name/config

    指示に従って、NSS デーベースのパスワードを入力します。

  2. 次のコマンドを使用して、管理サーバーを起動します。

    webserver-install-dir/admin-server/bin/startserv.bat
  3. 次のコマンドを使用して、自己署名証付き明書を作成します。コマンドは必ず 1 行で入力してください。

    webserver-install-dir/bin/wadm create-selfsigned-cert --user=
    admin-user --server-name=host-name 
    --nickname=ServerCert --token=internal --config=config-name
    
  4. 次のコマンドを使用して、HTTP リスナーを作成します。コマンドは必ず 1 行で入力してください。

    webserver-install-dir/bin/wadm create-http-listener 
    --user=admin-user --server-name=host-name 
    -default-virtual-server-name=default-virtual-server-name 
    --listener-port=8090 --config=config-name http-listener-ssl
  5. 次のコマンドを使用して、SSL を有効にして証明書を割り当てます。コマンドは必ず 1 行で入力してください。

    webserver-install-dir/bin/wadm set-ssl-prop 
    --user=admin-user --http-listener=http-listener-ssl 
    --config=config-name enabled=true server-cert-nickname=ServerCert

ProcedureSun Web サーバー 7 用の DAS 証明書をエクスポートおよびインポートする

  1. Enterprise Server with HADB バンドルを使用している場合は、次のコマンドを実行して、DAS 証明書をエクスポートします。

    <as home>/lib/upgrade/pk12util -d <domain root>/config -o sjsa.p12 -W
    <file password> -K <master password> -n s1as
    • GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、Java SE 5.0 セキュリティーツールの keytool を使用し、別名「s1as」を名前に指定して DAS 証明書をエクスポートします。この作業の間、Internet RFC 1421 標準で定義されている印刷可能なエンコーディング形式で証明書をエクスポートするには、-rfc オプションを選択します。

      コマンド行からは、次のコマンドを使用して DAS 証明書をエクスポートできます。

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      ここで、<GLASSFISH_HOME> は Application Server のインストールディレクトリ、<DOMAIN_NAME> は証明書のエクスポート元のドメインを示します。

    • 証明書ファイルを Web サーバーの構成ディレクトリにコピーします。

  2. Enterprise Server with HADB バンドルを使用している場合、次のコマンドを使用して、DAS 証明書を Web Server インスタンスにインポートします。

    <webserver home>/bin/https/admin/bin/pk12util-i sjsas.p12 -d <webserver
    home>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver home>/bin/https/admin/bin/certutil -M -n s1as -t "TCu,Cu,Tuw"
    -d alias -P <instance-name>-<hostname>-

    このコマンドにより、Application Server CA が、クライアント証明書およびサーバー証明書の両方に署名するための信頼済み CA になります。

    • GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、NSS セキュリティーツールの certutil を使用して作成された rfc ファイルから DAS 証明書をインポートします。

      <webserver_home>/bin/certutil -A -a -n s1as -t "TC" -i s1as.rfc -d
      <WS_INSTALL_ROOT>/admin-server/config-store/<CONFIG_NAME>/config

      ここで、<webserver_home> は Web サーバーのインストールディレクトリ、<CONFIG_NAME> はデフォルトの Web サーバーインスタンスに対して作成された構成名を指します。

      次のコマンドを使用することで、この証明書の存在を確認できます。このコマンドは、デフォルトのサーバー証明書を含むその他の CA 証明書とともに s1as 証明書を一覧表示します。必ず、コマンド全体を 1 行で入力してください。

      <WS_INSTALL_ROOT>/bin/certutil -L -d
      <WS_INSTALL_ROOT>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config

      この表示は、Web Server の管理コンソールを使用して行うこともできます。証明書をインポートした先の構成 (この場合はデフォルト構成) を選択してから、「証明書」タブを選択します。利用可能なすべての証明書を見るには、「認証局」サブタブを選択します。

  3. Web Server 7.0 で次のように設定を変更します。

    1. <WS_INSTALL_ROOT>/admin-server/config-store/<DEFAULT_CONFIG_NAME>/config/ にある obj.conf ファイルに、次の行を追加します。

       <Object ppath="*lbconfigupdate*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
      <Object ppath="*lbgetmonitordata*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
  4. 構成を配備します。前の手順で示した一連の変更を行なっている間、管理コンソールによりこの構成が配備対象としてマークされます。

    1. Web Server の管理コンソールで、「配備保留中」のアイコンを選択します。次のように、CLI ユーティリティー wadm を使用してこの構成を配備することもできます。

      <WS_INSTALL_ROOT>/bin/wadm deploy-config-user=<admin><DEFAULT_CONFIG_NAME>

      <admin> は、管理者のユーザー名です。

  5. GlassFish DAS からこの設定をテストして、設定された HTTP ロードバランサとの通信が SSL 経由で行われているかどうかを確認します。詳細については、「設定の確認」を参照してください。