Sun Java System Web Server では、Sun Java System Application Server 9.1 のインストールウィザードを使用してロードバランサプラグインをインストールするとき、すべての必要な設定がインストールウィザードによって自動的に行われます。手動での設定は必要ありません。Application Server 9.1 に付属のロードバランサプラグインは、次のバージョンの Sun Java System Web Server をサポートしています。
Sun Java System Web Server 6.1
Sun Java System Web Server 7.0
ただし、GlassFish v2 を使用している場合は、Application Server ロードバランサプラグインを http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/aslb-9.1-MS4-b7.jar から別個にダウンロードし、そのプラグインの設定時に手動でいくつかの変更を行う必要があります。GlassFish v2 用プラグインのインストールと設定の詳細な手順については、『Sun Java System Application Server 9.1 Installation Guide』の「To Install the Load Balancing Plug-in (standalone)」を参照してください。
次の手順は、Application Server 9.1 のインストールプログラムによって自動的に実行されます。ただし、GlassFish v2 を使用している場合は、これらの手順を手動で実行する必要があります。
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=
まだ存在しない場合、次の行を追加します。
Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
ファイル 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 ファイルの詳細については、『Sun Java System Web Server 7.0 Administrator’s Configuration File Reference』を参照してください。
ファイル 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>
web-server-install-dir/start スクリプトを編集し、app-server-install-dir/lib/lbplugin/lib が含まれるように LD_LIBRARY_PATH の値を更新します。
app-server-install-dir/lib/lbplugin/lib ディレクトリには、ロードバランサプラグインに必要なバイナリが含まれています。
(省略可能) 新しいDAS ベースのロードバランサ管理を行う場合は、SSL を使用するように Web サーバーを設定します。
Web Server 6.1 での詳細な手順については、「Sun Java System Web Server 6.1 用に SSL モードでロードバランサを設定する」を参照してください。
Web Server 7 での詳細な手順については、「SSL モードでの Web Server 7 用ロードバランサの設定」を参照してください。
Web サーバーがまだ動作していない場合、Web サーバーを起動します。
Application Server 9.1 で提供される自動適用は、ロードバランサの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信する機能です。この機能の詳細については、「自動適用」を参照してください。以下の手順では、この機能を使用するために Sun Java System Web Server (バージョン 6 および 7) を設定する方法を説明します。
この節の手順は、ロードバランサプラグインの自動適用機能を使用する場合にのみ実行する必要があります。この機能は、ロードバランサプラグインの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信するために役立ちます。
ブラウザを使用して Web Server の管理コンソールにアクセスし、ログインします。
サーバーインスタンスを選択して「Manage」をクリックします。
「Security」タブをクリックします。
ユーザー名とパスワードを入力して、信頼データベースを初期化します。これは、certutil コマンドまたは GUI のどちらかを使用して行うことができます。信頼データベースの初期化は、certutil コマンドの次のオプションを使用して実行できます。
certutil -N -P "https-instance-name-hostname-" -d
certutil から入力を求められたら、キーを暗号化するためのパスワードを入力します。キーの暗号化に使用するパスワードを入力します。このパスワードの長さは少なくとも 8 文字以上にし、アルファベット以外の文字を少なくとも 1 つ以上含めるようにしてください。
新しいパスワードを入力するように求められたら、パスワードを指定します。
次のコマンドを使用して、サンプルのローカル認証局 (CA) を作成します。
certutil -S -P "https-boqueron.virkki.com-boqueron-" -d . -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" -x -t "TC,TC,TC" -m 101 -v 99 -5
前の手順で作成したサンプル 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
次の手順の説明に従って、HTTPS リスナーを作成します。
Application Server 9.1 を使用している場合、次のコマンドを実行して DAS 証明書をエクスポートします。
<appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W <file password> -K <master password> -n s1as
GlassFish v2 を使用している場合は、次のコマンドを使用して 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 サーバーの構成ディレクトリにコピーします。
Application Server 9.1 を使用している場合、次のコマンドを使用して、DAS 証明書を Web Server インスタンスにインポートします。
<webserver_install_dir>/bin/https/admin/bin/pk12util-i sjsas.p12 -d <webserver_install_dir>/alias -W<file password> -K <webserver security db password> -P <instance-name>-<hostname>-
<webserver_install_dir>/bin/https/admin/bin/certutil -M -n s1as -t "TCu" -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
これらのコマンドにより、Application Server CA が、クライアント証明書およびサーバー証明書の両方に署名するための信頼済み CA になります。
GlassFish v2 を使用している場合は、NSS セキュリティーツールの certutil を使用して作成された rfc ファイルから DAS 証明書をインポートします。
<webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
次のコマンドを使用することで、この証明書の存在を確認できます。このコマンドは、デフォルトのサーバー証明書を含むその他の CA 証明書とともに s1as 証明書を一覧表示します。コマンドは必ず 1 行で入力してください。
<WS_INSTALL_ROOT>/bin/certutil -L -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
obj.conf に次の行が含まれていない場合は、ファイルの末尾に追加してください。Application Server 9.1 を使用している場合、この手順はインストールプログラムによって自動的に実行されます。
<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>
「設定の確認」で説明されている手順を使用することにより、上記の設定を DAS から確認できます。ローカル CA を使用する代わりに、ほかの任意の CA およびサーバー証明書を使用できます。その場合、前の節の手順 5 および 6 は省略できますが、ほかの CA から入手したサーバー証明書をインポートする必要があります。
次のコマンドを使用して、Web Server の管理サーバーを起動します。
webserver-install-dir/admin_server/bin/startserv
次の手順の説明に従って、HTTPS リスナーを作成します。HTTP リスナーがすでに存在する場合は、次の手順を省略して、「Sun Java System Web Server 7 用の DAS 証明書をエクスポートおよびインポートする」に進むことができます。
Web Server の管理コンソールにログインします。
デフォルト構成を選択します。通常は、デフォルトの構成名はホスト名と同じです。「共通操作」ページからこれを行うには、「構成を選択」リストから構成を選択して「構成を編集」をクリックします。「構成」ページを開き、「構成」テーブル内のデフォルト構成名をクリックする方法もあります。
「共通操作」ページにいる場合は、「サーバー証明書の要求」をクリックします。「構成」ページにいる場合は、「証明書」ページを開き、「サーバー証明書」テーブルから「要求」ボタンをクリックします。これは、このデフォルト構成に対する自己署名付きサーバー証明書を作成するために必要です。
「サーバー証明書の要求」ウィンドウで、必要な詳細情報を指定します。
この作業の間、「*サーバー名 (cn)」に指定する値が、Web サーバーがインストールされているマシンの完全指定ドメイン名 (FQDN) であることを確認してください。たとえば、ホスト名が machine1 でドメイン名が server.example.com である場合、FQDN は machine1.server.example.com になります。デフォルト値が用意されているすべての項目で、デフォルト値を選択します。
次のコマンドを使用して、自己署名付き証明書を作成することもできます。コマンドは必ず 1 行で入力してください。
webserver-install-dir/bin/wadm create-selfsigned-cert --user= admin-user --server-name=host-name --nickname=ServerCert --token=internal --config=config-name
選択した構成のページに戻ります。
「HTTP リスナー」ページを開き、「新規」ボタンをクリックします。これは、SSL 対応の HTTP リスナーを作成するための手順です。
「新規 HTTP リスナー」ウィザードの質問に答える形で、詳細情報を指定します。サーバー名には必ず、前の手順で指定した FQDN を指定してください。「SSL」ボタンを選択し、以前に作成したサーバー証明書を「証明書」リストから選択します。たとえば、cert-machine1.server.example.com を選択します。
次のコマンドを使用して 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
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
上記の手順をすべて実行すると、管理コンソールの右上隅に「配備保留中」という警告が表示されます。その警告をクリックし、指示に従って配備を完了します。この手順により、Web サーバーの管理サーバー内の構成ストアに対する変更が Web サーバーインスタンスにコピーされることが保証されます。
DAS 証明書をエクスポートしてインポートすることにより、DAS を Web Server の信頼済みクライアントにすることができます。DAS 証明書を使用するクライアント認証により、信頼済みクライアントとして DAS のみが Web Server に接続することが保証されます。
端末ウィンドウを開き、次のコマンドを使用して LD_LIBRARY_PATH を設定します。
export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
Application Server 9.1 を使用している場合、次のコマンドを実行して DAS 証明書をエクスポートします。DAS 証明書は、クライアント証明書およびサーバー証明書の両方として機能します。
<appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o s1as.p12 -W <s1as.pk12-file-password> -K <master password> -n s1as
GlassFish v2 を使用している場合は、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 サーバーの構成ディレクトリにコピーします。
Application Server 9.1 を使用している場合、DAS 証明書を Web Server インスタンスにインポートし、次のコマンドを使用して証明書の信頼属性を設定します。
<webserver_install_dir>/bin/pk12util -i <path_to_s1as.pk12-file> -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config -K <webserver security db password> -W <s1as.pk12-file-passwd>
<webserver_install_dir>/bin/certutil -M -n s1as -t "TCu" -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config
これらのコマンドにより、Application Server CA が、クライアント証明書およびサーバー証明書の両方に署名するための信頼済み CA になります。
GlassFish v2 を使用している場合は、NSS セキュリティーツールの certutil を使用して作成された rfc ファイルから DAS 証明書をインポートします。
<webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d <webserver_install_dir>/admin-server/config-store/<CONFIG_NAME>/config
ここで、<webserver_install_dir> は Web サーバーのインストールディレクトリ、<CONFIG_NAME> はデフォルトの Web サーバーインスタンスに対して作成された構成名を指します。
次のコマンドを使用することで、この証明書の存在を確認できます。このコマンドは、デフォルトのサーバー証明書を含むその他の CA 証明書とともに s1as 証明書を一覧表示します。必ず、コマンド全体を 1 行で入力してください。
<webserver_install_dir>/bin/certutil -L -d <webserver_install_dir>/admin-server/config-store/ <DEFAULT_CONFIG_NAME>/config
この表示は、Web Server の管理コンソールを使用して行うこともできます。証明書をインポートした先の構成 (この場合はデフォルト構成) を選択してから、「証明書」タブを選択します。利用可能なすべての証明書を見るには、「認証局」サブタブを選択します。
GlassFish v2 を使用している場合は、Web Server 7 に対する次の設定変更を行います。Application Server 9.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>
構成を配備します。前の手順で示した一連の変更を行なっている間、管理コンソールによりこの構成が配備対象としてマークされます。
GlassFish DAS からこの設定をテストして、設定された HTTP ロードバランサとの通信が SSL 経由で行われているかどうかを確認します。詳細については、「設定の確認」を参照してください。