GlassFishのロードバランサプラグインで Apache と連携 Part1(Apache 設定編)
今日は Apache と GlassFish の連携を行いたい方にGlassFish のロードバランサプラグインを使った連携方法について紹介します。GlassFish のロードバランサプラグインを使うと、運用がとても楽になります。
例えば、GlassFish 側で提供しているサービスを停止したい場合、
GlassFish 側で設定を無効にした後、Apache にログインして設定を
しなおさなくても、設定変更を Apache 側に送信することができるように
なります。例えば、インスタンスを4つもつクラスタで、一つずつ
インスタンスを再起動して、ローリングアップグレードを行う場合を
考えてみましょう。負荷分散設定を無効にして、Web サーバ側の
設定変更を下記のたった2つのコマンドを実行するだけでよくなります。
GlassFish のロードバランサプラグインを使わない場合は、Apache が
稼働するマシンにログインして mod_proxy 等の設定を手動で変更して
などの作業を行っていたかと思いますが、ロードバランサプラグインを
使用するともうそのような面倒なことはしなくてよくなります。
dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=false” cluster1.server-ref.instance2.lb-enabled = false dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
この環境を作る手間は大変ですが、運用がかなり楽になりますので、
ぜひ、お試しください。また、下記の手順は全て asadmin のコマンドを
使用して設定していますので、設定が複雑と思われるかもしれませんが、
基本的には、下記の手順に従い設定すれば環境が構築できるかと思いますので、
ぜひチャレンジしてみてください。また慣れれば大きなパワーを発揮する
asadmin もぜひこの機会にお試しください。
必要なソフトウェア:
● apache2.2.14
● OpenSSL/0.9.8k Install:
インストール場所:/usr/local/ssl
● GlassFish:
インストール場所:/sun/glassfish-v2.1.1
http://www.sun.com/appserver より入手
● GlassFish LB Plugin (aslb-9.1.1-b**.jar)の入手先
http://download.java.net/javaee5/external/SunOS/aslb/jars/ (Solaris SPARC用)
http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/(Solarix x86用)
http://download.java.net/javaee5/external/Linux/aslb/jars/ (Linux 用)
http://download.java.net/javaee5/external/WINNT/aslb/jars/ (Windows 用)
必要なシステム:
今回の説明で登場するマシンの役割とホスト名、また各ホストで実行する際の
コマンドプロンプトを紹介します。複数のマシンがでてきますので、実行時
わかりやすくするため、プロンプトを変えて表示していますので、プロンプトを
確認し、どこで実行されているかを確認してください。
役割 | ホスト名 | 実行プロンプト |
ドメイン管理サーバ: | dashost.japan.sun.com | dashost > |
認証局(CA) : | ca-admin.japan.sun.com | ca-admin > |
Apache Web サーバ: | apache.japan.sun.com | apache > |
ノードエージェント1: | nodeagent1.japan.sun.com | nodeagent1 > |
ノードエージェント2: | nodeagent2.japan.sun.com | nodeagent2 > |
環境変数 (das/nodeagent1/nodeagent2 全てのマシンで下記を設定):
下記の環境変数はドメイン管理サーバ、各ノードエージェントで全て同じ設定を
してください。
dashost > vi .tcshrc set path=(/usr/sfw/bin /sun/glassfish-v2.1.1/bin /usr/jdk/jdk1.6.0_17/bin $path) setenv LD_LIBRARY_PATH “/sun/glassfish-v2.1.1/lib:/sun/glassfish-v2.1.1/lib/plug in/lib:/usr/sfw/lib:/lib:/usr/lib” setenv JAVA_HOME /usr/jdk/jdk1.6.0_17 setenv AS_ADMIN_USER clusterAdmin setenv AS_ADMIN_PASSWORDFILE /export/home/appserv/.passwordfile setenv AS_ADMIN_HOST dashost.japan.sun.com setenv AS_ADMIN_PORT 5048 |
パスワードファイル(das/nodeagent1/nodeagent2 全てのマシンで下記を設定):
また、管理者のパスワードの毎回の入力を省略するため、あらかじめパスワードを
設定しておきます。AS_ADMIN_PASSWORD は GUI のログイン画面等で入力する
パスワードで AS_ADMIN_MASTERPASSWORDは SSL の証明書データベースを
操作する際に使用するパスワードです。
dashost > vi .passwordfile AS_ADMIN_PASSWORD=adminadmin AS_ADMIN_MASTERPASSWORD=changeit |
Apache 2.2.14 のコンパイル
SSL と マルチコア対応のオプションを有効にして make します。
apache > ./configure –with-ssl=/usr/local/ssl –prefix=/usr/local/apache2.2.14 –enable-ssl –enable-so –with-included-apr
apache > make |
Apache のサーバ名を編集
apache >vi /usr/local/apache2.2.14/conf/httpd.conf ServerName apache.japan.sun.com |
Apache の動作確認
Apache を起動し、ヘッダの内容を確認してみましょう。
apache > /usr/local/apache2.2.14/bin/apachectl start |
TELNET による接続確認と Server ヘッダの内容確認
apache > telnet localhost 80 Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. GET / HTTP/1.1 Host: apache.japan.sun.com HTTP/1.1 200 OK <html><body><h1>It works!</h1></body></html> |
他の設定を行うため、一時的に Apache を停止しておきます。
apache > /usr/local/apache2.2.14/bin/apachectl stop |
クラスタ対応の GlassFish 新規ドメインの作成とサーバ証明書の抽出
次に、クラスタに対応した新規ドメインを作成します。
dashost > asadmin create-domain –portbase=5000 –profile=cluster clusterDomain Admin のポート 5048 を使用しています。 HTTP Instance のポート 5080 を使用しています。 JMS のポート 5076 を使用しています。 IIOP のポート 5037 を使用しています。 HTTP_SSL のポート 5081 を使用しています。 IIOP_SSL のポート 5038 を使用しています。 IIOP_MUTUALAUTH のポート 5039 を使用しています。 JMX_ADMIN のポート 5086 を使用しています。 コマンド行または環境で の指定どおりにプロファイル cluster を使用してドメインを作成しています。 指定されたロケール [ja_JP] のファイルが [/sun/glassfish-v2.1.1/lib/install/templates/locales/ja_JP/index.html] に見つかりませんでした。デフォルト (en_US) の index.html を使用します。 使用するセキュリティーストア: JKS ドメイン clusterDomain が作成されました。 dashost > |
次に GlassFish ドメイン管理サーバのサーバ証明書を抽出します.
この際,管理ガイドには certutil コマンドを使用した例が
記載されておりますが,certutil コマンドは GlassFish
with HADB のインストーラを使用してインストールした場合のみ
利用可能です.そこで HADB を使用しないインストーラを
使用する場合は,JavaSE 付属の keytool を使用して証明書をエクスポートします.
dashost > cd domains/clusterDomain/config/ dashost > keytool -export -rfc -alias s1as -keystore keystore.jks -file sjas.crt キーストアのパスワードを入力してください: [changeit] 証明書がファイル <sjas.crt> に保存されました。 dashost > |
Apache の SSL 設定とLB プラグインの設定
ロードバランサモジュールの設定
Apache の httpd.conf に対してロードバランサプラグインが使用する
モジュールを読み込ませる設定を行います。
apache > vi /usr/local/apache2.2.14/conf/httpd.conf
…… |
GlassFish のサーバ証明書のコピーとシリアル番号の確認
GlassFish でエクスポートしたサーバ証明書 (sjsas.crt) を Apache の
証明書管理ディレクトリにコピーします。
コピーした後、GlassFish のサーバ証明書の内容を確認してみましょう。
ここで,GlassFish のサーバ証明書からシリアル番号(下記では:4b345534)
を覚えておいてください。
apache > mkdir /usr/local/apache2.2.14/conf/ssl.crt DAS で取得した自己署名サーバ証明書(sjsas.crt)を事前に FTP 等で Apache の稼働するサーバへ転送 apache > mv sjsas.crt /usr/local/apache2.2.14/conf/ssl.crt/ apache > cd /usr/local/apache2.2.14/conf/ssl.crt/ apache > keytool -printcert -file sjsas.crt 所有者: CN=dashost, OU=Sun GlassFish Enterprise Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US 発行者: CN=dashost, OU=Sun GlassFish Enterprise Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US シリアル番号: 4b345534 有効期間の開始日: Fri Dec 25 15:01:24 JST 2009 終了日: Mon Dec 23 15:01:24 JST 2019 証明書のフィンガープリント: MD5: 84:FD:B4:E9:B7:EF:88:F2:04:B0:20:23:9D:D9:A5:9E SHA1: DC:48:8E:C4:A2:AB:C2:AF:FC:8B:C5:54:59:F5:39:14:0D:82:E3:BE 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: FA EA 09 87 42 BC D8 04 C3 88 B1 8E 93 2D 0A 3A ….B……..-.: 0010: 74 3B 19 07 t;.. ] ] apache > |
Apache SSL設定に対する LB プラグイン設定追加
下記に示す、<Location /lbconfigupdate>から始まる
数行をコピーし、それ以外の箇所を適切に編集してください。
ここで1点注意して頂きたいのはシリアル番号の入力箇所です。
上記で確認したシリアル番号は小文字で表示されていますが,
下記のApache の httpd-ssl.conf ファイル中には全て大文字に変換して
記載してください.
(例:4b345534 → 4B345534 に変更)
apache > vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
<VirtualHost apache.japan.sun.com:443> <—- 修正 下記の行をファイルの最後に追加 <Location /getmonitordata> |
※ 注意:ここでは GlassFish のインストール時に自動的に
作成されるデフォルトのサーバ証明書を使った時の例を記載
しています。仮に GlassFish のドメイン管理サーバのサーバ
証明書を入れ替えている場合は、必要におうじて、SSL_CLIENT_S_DN_O
、SSL_CLIENT_S_DN_OU等のエントリも修正してください。
次に httpd-ssl.conf を有効にします。
httpd.conf ファイルを修正してください。 (SSL の有効化)
apache > vi /usr/local/apache2.2.14/conf/httpd.conf
# Secure (SSL/TLS) connections |
次に httpd-mpm.conf を有効にします。
httpd.conf ファイルを修正してください。(マルチプロセッサ対応)
apache > vi /usr/local/apache2.2.14/conf/httpd.conf
# Server-pool management (MPM specific) |
次に Apache の起動時に読み込むライブラリパスを追加してください。
apache > vi /usr/local/apache2.2.14/bin/envvars LD_LIBRARY_PATH=”/usr/local/apache2.2.14/lib: /usr/local/apache2.2.14/modules:/usr/lib/mps:$LD_LIBRARY_PATH” |
OpenSSL でプライベート認証局(CA)の構築
認証局(CA) の構築の準備 (openssl.cnfの編集)をします。
設定ファイル中から下記の行を編集してください。
[ usr_cert ]
basicConstraints=CA:TRUE <—FALSEから変更 |
プライベートの認証局(CA) の構築
ca-server > ./misc/CA.pl -newca CA certificate filename (or enter to create) Making CA certificate … You are about to be asked to enter information that will be incorporated Please enter the following ‘extra’ attributes Enter pass phrase for ./demoCA/private/cakey.pem:[password] X509v3 Basic Constraints: Write out database with 1 new entries |
Apache 用のサーバ証明書の作成(CSRの作成)
まず、Apache 上で秘密鍵を生成します。
apache > mkdir /usr/local/apache2.2.14/conf/ssl.key apache > cd /usr/local/apache2.2.14/conf/ssl.key apache > openssl genrsa -des3 -out apache.japan.sun.com.key 2048 Generating RSA private key, 2048 bit long modulus ……………………+++ …….+++ e is 65537 (0x10001) Enter pass phrase for apache.japan.sun.com.key:[password] Verifying – Enter pass phrase for apache.japan.sun.com.key:[password] apache > ls apache.japan.sun.com.key |
Apache 上で認証局(CA)に提出する CSR の作成
認証局に提出する CSR を生成します。
apache >openssl req -new -key apache.japan.sun.com.key -subj “/emailAddress=webmaster@japan.sun.com/CN=apache.japan.sun.com/OU=Software Practice/O=Sun Microsystems/L=Setagaya/ST=Tokyo/C=JP” -out apache.japan.sun.com.csr Enter pass phrase for apache.japan.sun.com.key:[password] apache > pwd |
認証局(CA) でサーバ証明書の署名の準備
認証局(CA) の設定を変更し、サーバ証明書を署名する準備をします。
ca-admin > vi openssl.cnf
[ usr_cert ] |
認証局(CA) で Apache のサーバ証明書を署名
Apache 上で生成した CSR を認証局(CA)で署名を行います。
認証局(CA) が稼働するマシンまで Apache 上で生成した
CSR ファイルを FTP 等でコピーしてください。
ca-server > openssl ca -config ./openssl.cnf -in
./apache.japan.sun.com.csr -keyfile ./demoCA/private/cakey.pem Using configuration from ./openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: cd:ea:db:f4:c8:e3:93:93 Validity Not Before: Dec 25 06:58:47 2009 GMT Not After : Dec 25 06:58:47 2010 GMT Subject: countryName = JP stateOrProvinceName = Tokyo organizationName = Sun Microsystems organizationalUnitName = Software Practice commonName = apache.japan.sun.com emailAddress = webmaster@japan.sun.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 1E:1F:C2:95:F6:29:2C:53:54:27:32:66:FF:59:60:FA:E1:3B:C5:19 X509v3 Authority Key Identifier: keyid:1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A Certificate is to be certified until Dec 25 06:58:47 2010 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated ca-server > |
認証局(CA)から取得した、署名済みサーバ証明書を証明書ディレクトリへコピー
認証局で署名された署名済みのサーバ証明書を Apache まで FTP 等でコピーして
下さい。ファイルを転送後、Apache の証明書管理ディレクトリ(ssl.crt)へ
コピーします。
apache > mv apache.japan.sun.com.signed-server-cert
/usr/local/apache2.2.14/conf/ssl.crt/ |
署名済みサーバ証明書の内容を確認
署名済みのサーバ証明書の内容を確認しておきます。
apache > cat apache.japan.sun.com.signed-server-cert
Certificate: Data: Version: 3 (0x2) Serial Number: cd:ea:db:f4:c8:e3:93:93 Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Validity Not Before: Dec 25 06:58:47 2009 GMT Not After : Dec 25 06:58:47 2010 GMT Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=apache.japan.sun.com/emailAddress=webmaster@japan.sun.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:c9:a1:75:01:3b:44:d8:2e:bb:ff:97:fa:c0:09: 96:d0:ae:9f:92:3a:d8:f0:7c:77:bf:2b:8d:82:14: 3e:14:ec:26:01:ab:68:ca:6a:ab:1a:e6:37:08:89: 2a:73:83:d6:61:7e:0c:37:4c:9c:35:38:e4:20:a8: 25:df:60:cd:7c:ea:17:7c:1d:5b:9f:0b:40:3a:d7: fc:2e:e4:af:66:62:c3:fd:46:a7:31:11:68:96:f4: cb:c3:7d:81:bd:37:b8:53:ef:cc:68:78:51:9d:a2: 48:f5:80:4e:d6:49:3b:8b:0d:db:81:8e:58:fd:2c: bf:47:90:87:6d:40:e6:dd:8c:63:c2:bd:62:d4:aa: 70:4a:b0:91:ec:61:d4:b5:18:ea:b6:2b:47:83:68: 72:f7:01:d6:ad:aa:44:85:34:8a:f6:9d:99:25:57: 02:32:02:02:8d:2c:98:bc:99:cb:ac:ce:a5:b3:27: 46:ca:4c:ee:af:41:14:8f:9c:62:fc:06:20:c3:88: 53:f1:b2:3a:6e:7c:75:4b:8f:da:83:8a:34:d4:29: 40:6d:ad:85:e5:c8:6e:f8:21:8c:7c:ec:3c:00:b6: 07:e1:97:78:48:04:82:80:19:28:28:12:04:9c:b1: f6:4f:38:44:74:41:98:ab:e6:5f:8d:c2:84:a6:a8: 4e:8d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 1E:1F:C2:95:F6:29:2C:53:54:27:32:66:FF:59:60:FA:E1:3B:C5:19 X509v3 Authority Key Identifier: keyid:1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A Signature Algorithm: sha1WithRSAEncryption 2c:49:f2:d9:90:a8:1d:a5:0d:3b:14:1c:ef:1c:b2:5d:35:66: 2f:9f:ca:b1:56:9f:6d:5f:84:70:66:bf:44:da:6e:c4:c9:08: 81:d1:f7:6e:d0:6c:35:5d:45:5a:52:1c:6c:5f:d0:24:fa:15: c2:88:a9:64:b7:15:e5:ec:d3:a7:2e:53:90:c0:d1:16:fc:cc: 58:a1:65:08:c9:4c:34:38:e2:57:3f:b6:e8:db:f8:92:62:c2: fd:59:81:7d:d7:aa:1a:43:20:1b:b7:18:09:97:06:47:d9:3a: 09:14:bb:63:18:0f:15:81:a2:0d:89:cc:32:f9:57:88:78:6f: 72:d8 -----BEGIN CERTIFICATE----- MIIDvzCCAyigAwIBAgIJAM3q2/TI45OTMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTIyNTA2NTg0N1oXDTEwMTIyNTA2NTg0N1owgZsxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFGFwYWNoZS5qYXBhbi5zdW4uY29t MSYwJAYJKoZIhvcNAQkBFhd3ZWJtYXN0ZXJAamFwYW4uc3VuLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmhdQE7RNguu/+X+sAJltCun5I62PB8 d78rjYIUPhTsJgGraMpqqxrmNwiJKnOD1mF+DDdMnDU45CCoJd9gzXzqF3wdW58L QDrX/C7kr2Ziw/1GpzERaJb0y8N9gb03uFPvzGh4UZ2iSPWATtZJO4sN24GOWP0s v0eQh21A5t2MY8K9YtSqcEqwkexh1LUY6rYrR4NocvcB1q2qRIU0ivadmSVXAjIC Ao0smLyZy6zOpbMnRspM7q9BFI+cYvwGIMOIU/GyOm58dUuP2oOKNNQpQG2theXI bvghjHzsPAC2B+GXeEgEgoAZKCgSBJyx9k84RHRBmKvmX43ChKaoTo0CAwEAAaOB jzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFB4fwpX2 KSxTVCcyZv9ZYPrhO8UZMB8GA1UdIwQYMBaAFB24TDDMoTWycjWgisz6+RecxNJK MA0GCSqGSIb3DQEBBQUAA4GBACxJ8tmQqB2lDTsUHO8csl01Zi+fyrFWn21fhHBm v0TabsTJCIHR927QbDVdRVpSHGxf0CT6FcKIqWS3FeXs06cuU5DA0Rb8zFihZQjJ TDQ44lc/tujb+JJiwv1ZgX3XqhpDIBu3GAmXBkfZOgkUu2MYDxWBog2JzDL5V4h4 b3LY -----END CERTIFICATE----- |
PEM 形式の署名済みサーバ証明書を作成
—–BEGIN CERTIFICATE—– から —–END CERTIFICATE—– までを
コピーし PEM 形式のファイルを作成してください。
apache > vi apache.japan.sun.com.signed-server-cert.pem
-----BEGIN CERTIFICATE----- MIIDvzCCAyigAwIBAgIJAM3q2/TI45OTMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTIyNTA2NTg0N1oXDTEwMTIyNTA2NTg0N1owgZsxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFGFwYWNoZS5qYXBhbi5zdW4uY29t MSYwJAYJKoZIhvcNAQkBFhd3ZWJtYXN0ZXJAamFwYW4uc3VuLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmhdQE7RNguu/+X+sAJltCun5I62PB8 d78rjYIUPhTsJgGraMpqqxrmNwiJKnOD1mF+DDdMnDU45CCoJd9gzXzqF3wdW58L QDrX/C7kr2Ziw/1GpzERaJb0y8N9gb03uFPvzGh4UZ2iSPWATtZJO4sN24GOWP0s v0eQh21A5t2MY8K9YtSqcEqwkexh1LUY6rYrR4NocvcB1q2qRIU0ivadmSVXAjIC Ao0smLyZy6zOpbMnRspM7q9BFI+cYvwGIMOIU/GyOm58dUuP2oOKNNQpQG2theXI bvghjHzsPAC2B+GXeEgEgoAZKCgSBJyx9k84RHRBmKvmX43ChKaoTo0CAwEAAaOB jzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFB4fwpX2 KSxTVCcyZv9ZYPrhO8UZMB8GA1UdIwQYMBaAFB24TDDMoTWycjWgisz6+RecxNJK MA0GCSqGSIb3DQEBBQUAA4GBACxJ8tmQqB2lDTsUHO8csl01Zi+fyrFWn21fhHBm v0TabsTJCIHR927QbDVdRVpSHGxf0CT6FcKIqWS3FeXs06cuU5DA0Rb8zFihZQjJ TDQ44lc/tujb+JJiwv1ZgX3XqhpDIBu3GAmXBkfZOgkUu2MYDxWBog2JzDL5V4h4 b3LY -----END CERTIFICATE----- |
Apache の SSL の設定
Apache の SSL 設定ファイル(httpd-ssl.conf)を編集し
署名済みサーバ証明書(PEM形式)と秘密鍵ファイルを指定してください。
apache > vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
下記の行をそれぞれ編集 SSLCertificateKeyFile “/usr/local/apache2.2.14/conf/ssl.key/apache.japan.sun.com.key” |
GlassFish ロードバランサプラグインの設定
必要なソフトウェアに記載した URL から入手したロードバランサ
プラグインを GlassFish のドメイン管理サーバとApache にそれぞれ
コピーしてください。
ファイルをコピー後、それぞれアーカイブを展開してください。
dashost > mkdir /tmp/AS_LB dashost > cp /aslb-9.1.1-b13.jar /tmp/AS_LB/ dashost > cd /tmp/AS_LB/ dashost > jar xvf aslb-9.1.1-b13.jar SUNWaslb.zip が抽出されました. SUNWaspx.zip が抽出されました. BinariesLicense が展開されました. dashost > ls dashost > mkdir /sun/glassfish-v2.1.1/lib/plugin ロードバランサの設定ファイルをテンプレートディレクトリにコピー dashost > mv /sun/glassfish-v2.1.1/lib/plugin/lib/install/templates/loadbalancer.xml.example /sun/glassfish-v2.1.1/lib/plugin/lib/install/templates/loadbalancer.xml |
Apache 上で LB プラグインを展開し,設定ファイルやモジュールを
Apache の関連ディレクトリにコピーしてください。
apache > mkdir /tmp/AS_LB apache > cp /aslb-9.1.1-b13.jar /tmp/AS_LB/ apache > cd /tmp/AS_LB/ apache > jar xvf aslb-9.1.1-b13.jar SUNWaslb.zip が抽出されました. apache > ls apache > unzip SUNWaslb.zip
apache > cp /tmp/AS_LB/lib/plugin/lib/install/templates/loadbalancer.xml.example |
Apache 設定ディレクトリのオーナ変更
Apache の設定ディレクトリ (conf) に起動ユーザ(daemon)がアクセス
できるようにオーナを変更してください。
apache > chown -R daemon /usr/local/apache2.2.14/conf/ |
Apache の再起動
上記で Aapche 側の設定は完了です。Apache を起動してみましょう。
apache > /usr/local/apache2.2.14/bin/apachectl start Apache/2.2.14 mod_ssl/2.2.14 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server apache.japan.sun.com:443 (RSA) OK: Pass Phrase Dialog successful. |
※ 起動時パスワード入力を求めない方法もありますが、その設定方法は
別途 openssl コマンドを調べて設定してください。)
認証局(CA) 証明書を GlassFish へインポート
Apache 側ではプライベートの認証局(CA)によって署名された
サーバ証明書を正しく設定しましたが、
Apache 側で設定したサーバ証明書が信頼できる証明書か
GlassFish 側ではわからないため、信頼できる証明書であることを
証明する認証局(CA)の証明書をGlassFish 側にインポートする必要が
あります。
# cat /usr/local/ssl/demoCA/cacert.pem
Certificate: Data: Version: 3 (0x2) Serial Number: cd:ea:db:f4:c8:e3:93:84 Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Validity Not Before: Nov 9 04:40:09 2009 GMT Not After : Nov 8 04:40:09 2012 GMT Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:b6:ee:98:16:65:fb:da:94:48:67:71:00:3b:66: 81:6f:09:46:5a:e2:46:6c:0e:80:ea:18:ca:b8:9f: 6b:26:73:ee:da:36:48:1d:3d:fa:09:3b:6a:5a:b3: 10:5c:f5:bc:50:36:8d:46:6e:e1:7f:2f:79:63:0f: fc:f2:c5:be:68:f0:3d:55:ed:49:b9:37:1d:e4:56: a2:c8:a7:6f:48:1e:e3:db:17:d7:f3:65:18:e7:bd: d3:01:90:cf:17:22:df:43:ba:57:c1:65:1e:8d:5b: 5a:df:69:fd:24:97:67:32:c0:b5:29:fd:63:90:2e: d4:69:69:18:73:b8:80:be:21 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A X509v3 Authority Key Identifier: keyid:1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A DirName:/C=JP/ST=Tokyo/O=Sun Microsystems/OU=Software Practice/CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM serial:CD:EA:DB:F4:C8:E3:93:84 X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha1WithRSAEncryption 32:8b:2a:63:52:72:41:30:cc:b2:eb:5e:59:60:cd:e8:39:46: 19:dd:48:30:2c:e9:e8:b3:fa:c6:18:2a:2f:f4:22:1c:c6:22: c7:f0:f7:17:73:72:17:45:88:11:14:3a:88:35:18:52:a9:f0: eb:8e:de:18:3f:d7:33:e1:09:84:6c:da:b2:f7:03:f1:ae:37: b8:1c:f6:19:53:e0:0a:12:b3:7b:5a:dd:39:f1:d2:85:49:e0: 3e:5a:9d:89:b0:38:b0:76:80:11:cb:83:b0:fe:3f:ed:92:15: 68:3a:6d:3b:13:77:cc:4d:b1:1d:4b:8d:9d:b6:41:e5:06:07: 52:af -----BEGIN CERTIFICATE----- MIIDmTCCAwKgAwIBAgIJAM3q2/TI45OEMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTEwOTA0NDAwOVoXDTEyMTEwODA0NDAwOVowgZAxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxGjAYBgNVBAMTEWNhLXNlcnZlci5zdW4uY29tMR4w HAYJKoZIhvcNAQkBFg9jYWFkbWluQFN1bi5DT00wgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBALbumBZl+9qUSGdxADtmgW8JRlriRmwOgOoYyrifayZz7to2SB09 +gk7alqzEFz1vFA2jUZu4X8veWMP/PLFvmjwPVXtSbk3HeRWosinb0ge49sX1/Nl GOe90wGQzxci30O6V8FlHo1bWt9p/SSXZzLAtSn9Y5Au1GlpGHO4gL4hAgMBAAGj gfgwgfUwHQYDVR0OBBYEFB24TDDMoTWycjWgisz6+RecxNJKMIHFBgNVHSMEgb0w gbqAFB24TDDMoTWycjWgisz6+RecxNJKoYGWpIGTMIGQMQswCQYDVQQGEwJKUDEO MAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGjAYBgNV BAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2ZXIuc3VuLmNv bTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NggkAzerb9Mjjk4QwDAYD VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAyiypjUnJBMMyy615ZYM3oOUYZ 3UgwLOnos/rGGCov9CIcxiLH8PcXc3IXRYgRFDqINRhSqfDrjt4YP9cz4QmEbNqy 9wPxrje4HPYZU+AKErN7Wt058dKFSeA+Wp2JsDiwdoARy4Ow/j/tkhVoOm07E3fM TbEdS42dtkHlBgdSrw== -----END CERTIFICATE----- |
上記のファイルの—–BEGIN CERTIFICATE—–から
—–END CERTIFICATE—– までをコピーして保存してください。
コピーをドメイン管理サーバ(DAS)へ転送してください。
dashost > vi /tmp/cacert.pem
-----BEGIN CERTIFICATE----- MIIDmTCCAwKgAwIBAgIJAM3q2/TI45OEMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTEwOTA0NDAwOVoXDTEyMTEwODA0NDAwOVowgZAxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxGjAYBgNVBAMTEWNhLXNlcnZlci5zdW4uY29tMR4w HAYJKoZIhvcNAQkBFg9jYWFkbWluQFN1bi5DT00wgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBALbumBZl+9qUSGdxADtmgW8JRlriRmwOgOoYyrifayZz7to2SB09 +gk7alqzEFz1vFA2jUZu4X8veWMP/PLFvmjwPVXtSbk3HeRWosinb0ge49sX1/Nl GOe90wGQzxci30O6V8FlHo1bWt9p/SSXZzLAtSn9Y5Au1GlpGHO4gL4hAgMBAAGj gfgwgfUwHQYDVR0OBBYEFB24TDDMoTWycjWgisz6+RecxNJKMIHFBgNVHSMEgb0w gbqAFB24TDDMoTWycjWgisz6+RecxNJKoYGWpIGTMIGQMQswCQYDVQQGEwJKUDEO MAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGjAYBgNV BAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2ZXIuc3VuLmNv bTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NggkAzerb9Mjjk4QwDAYD VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAyiypjUnJBMMyy615ZYM3oOUYZ 3UgwLOnos/rGGCov9CIcxiLH8PcXc3IXRYgRFDqINRhSqfDrjt4YP9cz4QmEbNqy 9wPxrje4HPYZU+AKErN7Wt058dKFSeA+Wp2JsDiwdoARy4Ow/j/tkhVoOm07E3fM TbEdS42dtkHlBgdSrw== -----END CERTIFICATE----- |
認証局(CA) の証明書を cacerts.jks と keystore.jks へインポート
PEM 形式の認証局の署名書を GlassFish のサーバ証明書データベース(cacerts.jks)と
鍵データベース(keystore.jks)へインポートしてください。
dashost > cd domains/clusterDomain/config/ dashost > keytool -import -trustcacerts -v -keystore cacerts.jks -alias PrivateCACert -file /tmp/cacert.pem キーストアのパスワードを入力してください: [changeit] 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] この証明書を信頼しますか? [no]: yes 証明書がキーストアに追加されました。 [cacerts.jks を格納中] dashost > keytool -import -trustcacerts -v -keystore keystore.jks 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日:: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] この証明書を信頼しますか? [no]: yes 証明書がキーストアに追加されました。 [keystore.jks を格納中] dashost > |
認証局(CA) 証明書のインポート後の確認
正しく認証局(CA)の証明書がインポートできているかを確認するため、
keytool を使って確認してください。
dashost > keytool -list -v -alias PrivateCACert -keystore cacerts.jks キーストアのパスワードを入力してください: 別名: PrivateCACert 作成日: 2009/12/25 エントリのタイプ: trustedCertEntry 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] dashost > keytool -list -v -alias PrivateCACert 別名: PrivateCACert 作成日: 2009/12/25 エントリのタイプ: trustedCertEntry 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] |
上記で Apache 上でのロードバランサ設定は完了です。
次に GlassFish 上で Apache との連携用の設定を行います。
Entry filed under: Application Server/GlassFish. Tags: GlassFish, Load Balancer.