![]() |
Sun ONE Message Queue 管理者ガイド |
付録 B HTTP/HTTPS サポート
MQ Enterprise Edition (「製品エディション」を参照) には、HTTP コネクションと HTTPS コネクションの両方のサポートが含まれています (HTTPS は HTTP を介した安全なコネクションで、Secure Socket Layer 標準を使用)。このため、クライアントアプリケーションは、直接 TCP コネクションを使用せずに HTTP プロトコルを使用しているブローカと通信できます。この付録では、このようなサポートを実装するために使用されるアーキテクチャについて説明し、クライアントが MQ メッセージングに HTTP ベースのコネクションを使用するために必要となる設定の手順を示します。
HTTP/HTTPS サポートのアーキテクチャ
MQ メッセージングは、HTTP/HTTPS コネクションで実行できます。HTTP/HTTPS コネクションは、通常ファイアウォールを通して許可されるため、ファイアウォールによってブローカからクライアントアプリケーションを分離できます。図 B-1 に、HTTP/HTTPS サポートの提供に関連する主なコンポーネントを示します。
クライアント側では、HTTP 転送ドライバが MQ メッセージを HTTP 要求にカプセル化し、これらの要求が正しい順番で Web サーバに送信されることを確認する
クライアントアプリケーションは、HTTP プロキシサーバを使用して、必要に応じてブローカと通信できる。プロキシのアドレスは、クライアントアプリケーションの起動時に、コマンド行オプションを使用して指定する。詳細は、「HTTP プロキシを使用する」を参照
HTTP または HTTPS トンネルサーブレット (どちらも MQ にバンドルされている) は、Web サーバに読み込まれ、JMS メッセージがブローカに転送される前に、その JMS メッセージをクライアント HTTP 要求から取り出す。また HTTP/HTTPS トンネルサーブレットは、クライアントが作成した HTTP 要求に応じて、ブローカのメッセージをクライアントに返送する。1 つの HTTP/HTTPS トンネルサーブレットが複数のブローカへのアクセスに使用される。
図 B-1    HTTP/HTTPS サポートのアーキテクチャ
![]()
ブローカ側では、httpjms または httpsjms コネクションサービスが、対応するトンネルサーブレットから送られてくるメッセージを開いて、非多重化する
図 B-1 に示すように、HTTP と HTTPS サポートのアーキテクチャは非常に良く似ています。主な相違点は、HTTPS (httpsjms コネクションサービス) の場合、トンネルサーブレットにクライアントアプリケーションとブローカの両方への安全なコネクションがあることです。ブローカへの安全なコネクションは、SSL に対応したトンネルサーブレット、つまり MQ の HTTPS トンネルサーブレットを通して提供されます。このトンネルサーブレットが、コネクションを要求しているブローカに自己署名型証明書を渡します。ブローカは証明書を使用して、HTTPS トンネルサーブレットへの暗号化されたコネクションを設定します。このコネクションが確立されると、クライアントアプリケーションとトンネルサーブレット間の安全なコネクションについて、クライアントアプリケーションと Web サーバがネゴシエーションを行います。
HTTP サポートの実装
次に、HTTP サポートを実装するのに必要な手順を説明します。
手順 1. HTTP トンネルサーブレットを Web サーバに配置する
HTTP トンネルサーブレットを Web サーバに配置するには、通常 次の 2 つの方法があります。
jar ファイルとして配置する (Servlet 2.1 以前をサポートする Web サーバの場合)
jar ファイルとして配置する
MQ トンネルサーブレットを配置する作業は、適切な jar ファイルをホスト Web サーバに対してアクセス可能にすることと、その Web サーバが起動時にサーブレットを読み込むように設定することで成り立っています。トンネルサーブレット jar ファイル (imqservlet.jar) には、HTTP トンネルサーブレットに必要なすべてのクラスが含まれています。このファイルは、次の場所にあります。
Servlet 2.x をサポートする Web サーバは、このサーブレットの読み込みに使用できます。サーブレットのクラス名は次のとおりです。
- IMQ_HOME/lib (Solaris では /usr/share/lib/imq)
Web サーバは、imqservlet.jar ファイルを参照する必要があります。Web サーバとブローカを異なるホストで実行する場合は、Web サーバがアクセスできる場所に、imqservlet.jar ファイルのコピーを置く必要があります。
- com.sun.messaging.jmq.transport.
httptunnel.servlet.HttpTunnelServlet
起動時にこのサーブレットを読み込むように、Web サーバを設定する必要があります (「例 : HTTP トンネルサーブレットを配置する」を参照)。
パフォーマンスを向上させるために、Web サーバのアクセスログ作成機能を無効にしておくことをお勧めします。
Web アーカイブファイルとして配置する
HTTP トンネルサーブレットを WAR ファイルとして配置する作業は、Web サーバから提供されている配置メカニズムを使用することで成り立っています。HTTP トンネルサーブレット WAR ファイル (imqhttp.war) は、次のディレクトリにあります。
WAR ファイルには、Web サーバがサーブレットを読み込んで実行するときに必要となる基本的設定情報などの配置記述子が含まれています。
- IMQ_HOME/lib (Solaris では /usr/share/lib/imq)
手順 2. httpjms コネクションサービスを設定する
HTTP サポートは、MQ 3.0 のブローカのデフォルトでは有効になっていないため、ブローカを設定して、httpjms コネクションサービスを有効にする必要があります。設定し直すと、「ブローカの起動」で説明されているように、ブローカを起動できます。
次の場所にあるブローカのインスタンス設定ファイルを開きます。
ブローカは、起動時に Web サーバとそのホストマシン上で実行している HTTP トンネルサーブレットを探します。ただし、リモートトンネルサーブレットにアクセスするには、servletHost と servletPort コネクションサービスプロパティを設定し直します。
httpjms の値を imq.service.activelist プロパティに追加します。
- IMQ_VARHOME/instances/brokerName/props/config.properties
- brokerName には、ブローカインスタンスの名前が表示されます。
- imq.service.activelist=jms,admin,httpjms
パフォーマンスを向上させるために、pullPeriod プロパティも設定し直します。httpjms コネクションサービス設定プロパティについては、表 B-1 を参照してください。
手順 3. HTTP コネクションを設定する
クライアントアプリケーションは、設定済みのコネクションファクトリ管理対象オブジェクトを適切に使用して、ブローカへの HTTP コネクションを確立する必要があります。この節では、HTTP コネクション設定の問題点を説明します。
コネクションファクトリの属性の設定
HTTP サポートを実装するには、次のコネクションファクトリの属性を設定します (「コネクションファクトリ管理対象オブジェクト」を参照)。
imqConnectionType 属性を HTTP に設定する
コネクションファクトリ属性の設定は、次のいずれかの方法で行います。imqConnectionURL に HTTP トンネルサーブレットの URL を設定する
- http://hostName:port/imq/tunnel
-o オプションを、コネクションファクトリ管理対象オブジェクトを作成する imqobjmgr コマンドに使用するか、コネクションファクトリ管理対象オブジェクト作成時に属性を設定する (「コネクションファクトリ管理対象オブジェクトの追加」を参照)
クライアントアプリケーションを起動するコマンドに -D オプションを使用する (『MQ 開発者ガイド』を参照 )
プログラム的にクライアントアプリケーションコードに JMS API 呼び出しを作成したあと、これを使用してコネクションファクトリの属性を設定する (『MQ 開発者ガイド』を参照)
1 つのサーブレットを使用して、複数のブローカにアクセスする
複数のブローカを実行している場合、複数の Web サーバとサーブレットインスタンスを設定する必要はありません。現在実行中の複数のブローカで、1 つの Web サーバや HTTP トンネルサーブレットインスタンスを共有できます。共有するには、imqConnectiodnURL コネクションファクトリの属性を、次のように設定する必要があります。
hostName にはブローカのホスト名が入り、brokerName にはクライアントにアクセスさせる特定のブローカインスタンス名が入ります。
- http://hostName:port/imq/tunnel?ServerName=hostName:brokerName
hostName と brokerName に正しい文字列を入力したことを確認するには、ブラウザからサーブレット URL にアクセスして、HTTP トンネルサーブレットの状態レポートを生成します。レポートでは、サーブレットがアクセスしているすべてのブローカが次のように一覧表示されます。
HTTP プロキシを使用する
HTTP プロキシを使用して HTTP トンネルサーブレットにアクセスする場合、次の設定を行います。クライアントアプリケーションを起動するコマンドに -D オプションを使用して、これらのプロパティを設定できます。
例 : HTTP トンネルサーブレットを配置する
ここでは、HTTP トンネルサーブレットを Sun ONE Web Server に jar ファイルおよび WAR ファイルとして、配置する両方の方法を説明します。どちらを使用するかは、Sun ONE Web Server のバージョンによって決まります。Servlet 2.2 またはそれ以降がサポートされていない場合は、WAR ファイルの配置を行えません。
jar ファイルとして配置する
次の手順は、ブラウザベースの管理 GUI を使用した Sun ONE Web Server、FastTrack Edition 4.1 への配置を説明しています。この方法では、通常次の手順を実行します。次の項で、これらの手順について説明します。Web ブラウザを使用してサーブレットの URL にアクセスすると、HTTP トンネルサーブレットが問題なく配置されたことが確認できます。ステータス情報も表示されます。
「Servlets」タブを選択します。
「Configure Servlet Attributes」を選択します。
「Servlet Name」フィールドに、トンネルサーブレットの名前を指定します。
「Servlet Code (class name)」フィールドに次の値を設定します。
「Servlet Classpath」フィールドに imqservlet.jar への絶対パスを入力します。たとえば、次のように指定します。
- com.sun.messaging.jmq.transport.
httptunnel.servlet.HttpTunnelServlet
「Servlet args」フィールドに、表 B-2 に示すオプションの引数を入力します。
- IMQ_HOME/lib/imqservlet.jar
(Solaris の場合、/usr/share/lib/imq/imqservlet.jar)
表 B-2    HTTP トンネルサーブレット jar ファイルの配置に使用するサーブレット引数
引数
デフォルト値
参照先
表 B-1 を参照
表 B-1 を参照
- 両方の引数を使用する場合は、次のように引数をカンマで区切ります。
- servletPort=portnumber, servletHost=...
- serverHost 引数と serverPort 引数は、Web サーバとブローカ間の通信にだけ適用され、またデフォルト値に問題があるときにだけ設定されます。その場合、状況に応じてブローカ設定プロパティを設定する必要があります (表 B-1 を参照)。たとえば、次のように設定されます。
- imq.httpjms.http.servletPort
トンネルサーブレットの仮想パス (サーブレット URL) を設定するには
「Servlet」タブを選択します。
「Configure Servlet Virtual Path Translation」を選択します。
「Servlet Name」フィールドに「サーブレットを追加する」の手順 3 と同じ値を設定します。
- たとえば、URL にhttp://hostName:port/imq/tunnel を指定する場合、「Virtual Path」フィールドに次の文字列を入力します。
- /imq/tunnel
「Servlet」タブを選択します。
「Configure Global Attributes」を選択します。
「Startup Servlets」フィールドに、「サーブレットを追加する」の手順 3 と同じサーブレット名の値を入力します。
サーバのアクセスログを無効にする
必ずしもサーバのアクセスログを無効にする必要はありませんが、無効にしたほうがより良いパフォーマンスを得ることができます。
WAR ファイルとして配置する
次の手順では、Sun ONE Web Server 6.0 Service Pack 2 での配置について説明しています。Web ブラウザを使用してサーブレットの URL にアクセスすると、HTTP トンネルサーブレットが問題なく配置されたことが確認できます。ステータス情報も表示されます。
HTTP トンネルサーブレットを WAR ファイルとして配置するには
ブラウザベースの管理 GUI で、「Virtual Server Class」タブを選択してから、「Manage Classes」を選択します。
サーブレットは次のアドレスで利用可能となります。適切な仮想サーバクラス名 (defaultclass など) を選択して、「Manage」ボタンをクリックします。
「Manage Virtual Servers」を選択します。
適切な仮想サーバ名を選択し、「Manage」ボタンをクリックします。
「Deploy Web Application」をクリックします。
imqhttp.war ファイルを指すように、「WAR File On and WAR File Path」フィールドに適切な値を選択します。これは、次のディレクトリにあります。
「Application URI」フィールドに、「/imq」 (入力時には、かぎカッコ不要) を入力します。
- IMQ_HOME/lib (Solaris では /usr/share/lib/imq)
サーブレットを配置するインストールディレクトリのパス (通常は、Sun ONE Web Server インストールルートの任意の場所) を入力します。
クライアントはこの URL を使用して、HTTP コネクションを使用しているメッセージサービスに接続できます。
- http://hostName:port/imq/tunnel
HTTPS サポートを実装する
次に、HTTPS サポートを実装するのに必要な手順を説明します。この手順は、「HTTP サポートの実装」の手順とほとんど同じですが、さらに SSL 証明書の生成とアクセスに必要となる手順も追加されています。
HTTPS トンネルサーブレットの自己署名型証明書を生成する
それぞれの手順については、順次、詳しく説明します。HTTPS トンネルサーブレットを Web サーバに配置する
手順 1. HTTPS トンネルサーブレットの自己署名型証明書を生成する
MQ 3.0 での SSL Support は、クライアントが既知の信頼されたサーバと通信することを前提に、ネットワーク上のデータを保護することを目的としています。したがって MQ 3.0 では、自己署名型サーバ証明書だけを使用して SSL が実装されます。httpsjms コネクションサービスのアーキテクチャでは、HTTPS トンネルサーブレットが、ブローカに対してもアプリケーションクライアントに対してもサーバの役割をします。imqkeytool ユーティリティを実行し、トンネルサーブレットの自己署名型証明書を生成します。コマンドプロンプトで次のとおり入力します。
ユーティリティが必要な情報を要求します。Unix システムでは、キーストアを作成するアクセス権を取得するためにスーパーユーザ (root) として imqkeytool を実行する必要があります。
- imqkeytool -servlet keystore_location
imqkeytool はまず、キーストアに対するパスワードの入力を要求します。次に一部の組織情報の入力、続いて確認を要求します。確認が取れると、キーの組み合わせを生成している間、このコマンドは停止します。その後、特定のキーの組み合わせをロックするためのパスワード (キーパスワード) の入力を要求してくるので、Return キーを押します。これで、キーパスワードに、キーストアと同じパスワードが設定されます。
注 設定したパスワードを忘れないでください。あとでトンネルサーブレットがキーストアを開くために、そのパスワードを入力する必要があります。
imqkeytool を実行すると、JDK keytool ユーティリティが実行されて、自己署名型証明書が生成されます。生成された証明書は、 keystore_location 引数で指定される場所にある、MQ のキーストアファイルに配置されます。キーストアは、JDK1.2 keytool でサポートされているのと同じキーストアのフォーマットになっています。
注 HTTPS トンネルサーブレットは、キーストアを参照する必要があります。keystore_location にある生成されたキーストアを、HTTPS トンネルサーブレットがアクセスできる場所に確実に移動またはコピーしてください (「手順 2. HTTPS トンネルサーブレットを Web サーバに配置する」を参照)。
手順 2. HTTPS トンネルサーブレットを Web サーバに配置する
HTTPS トンネルサーブレットを Web サーバに配置するには、通常、次の 2 つの方法があります。
jar ファイルとして配置する (Servlet 2.1 以前をサポートする Web サーバの場合)
どちらの場合も、Web サーバで暗号化がアクティブであり、クライアントとブローカの間で終端間の安全な通信が有効であることを確認します。
jar ファイルとして配置する
MQ トンネルサーブレットを配置する作業は、適切な jar ファイルをホスト Web サーバに対してアクセス可能にすることと、その Web サーバが起動時にサーブレットを読み込むように設定することで成り立っています。トンネルサーブレット jar ファイル (imqservlet.jar) には、HTTPS トンネルサーブレットで必要となるすべてのクラスが含まれています。このファイルは、次の場所にあります。
Servlet 2.x をサポートする Web サーバは、このサーブレットの読み込みに使用できます。サーブレットのクラス名は次のとおりです。
- IMQ_HOME/lib (Solaris では /usr/share/lib/imq)
Web サーバは、imqservlet.jar ファイルを参照する必要があります。Web サーバとブローカを異なるホストで実行する場合は、Web サーバがアクセスできる場所に、imqservlet.jar ファイルのコピーを置く必要があります。
- com.sun.messaging.jmq.transport.
httptunnel.servlet.HttpsTunnelServlet
起動時にこのサーブレットを読み込むように、Web サーバを設定する必要があります (「例 : HTTPS トンネルサーブレットを配置する」を参照)。
サーブレットを Web サーバで実行するために、JSSE jar ファイルがクラスパスにあることを確認します。確認方法については、Web サーバのマニュアルを参照してください。
Web サーバの設定で重要な点は、自己署名型証明書の場所とパスワードを HTTPS トンネルサーブレットが使用するように指定し、ブローカとの安全なコネクションを確立することです。「手順 1. HTTPS トンネルサーブレットの自己署名型証明書を生成する」で作成されたキーストアを、HTTPS トンネルサーブレットがアクセスできる場所に置く必要があります。
パフォーマンスを向上させるために、Web サーバのアクセスログ作成機能を無効にしておくことをお勧めします。
Web アーカイブファイルとして配置する
HTTPS トンネルサーブレットを WAR ファイルとして配置する作業は、Web サーバから提供されている配置メカニズムを使用することで成り立っています。HTTPS トンネルサーブレット WAR ファイル (imqhttps.war) は、次のディレクトリにあります。
WAR ファイルには、Web サーバがサーブレットを読み込んで実行するときに必要となる基本的設定情報などの配置記述子が含まれています。
- IMQ_HOME/lib (Solaris では /usr/share/lib/imq)
ただし、imqhttps.war ファイルの配置記述子は、トンネルサーブレットが必要とするキーストアファイルが配置された場所を認識できません (「手順 1. HTTPS トンネルサーブレットの自己署名型証明書を生成する」を参照)。そのため、imqhttps.war ファイルを配置する前に、トンネルサーブレットの配置記述子 (XML ファイル) を編集し、キーストアの場所を指定する必要があります。
手順 3. httpsjms コネクションサービスを設定する
HTTPS サポートは、MQ 3.0 のブローカのデフォルトでは有効になっていないため、ブローカを設定して、httpsjms コネクションサービスを有効にする必要があります。設定し直すと、「ブローカの起動」で説明されているように、ブローカを起動できます。
次の場所にあるブローカのインスタンス設定ファイルを開きます。
ブローカは、起動時に Web サーバとそのホストマシン上で実行している HTTPS トンネルサーブレットを探します。ただし、リモートトンネルサーブレットにアクセスするには、servletHost と servletPort コネクションサービスプロパティを設定し直します。
httpsjms の値を imq.service.activelist プロパティに追加します。
- IMQ_VARHOME/instances/brokerName/props/config.properties
- brokerName には、ブローカインスタンスの名前が表示されます。
- imq.service.activelist=jms,admin,httpsjms
パフォーマンスを向上させるために、pullPeriod プロパティも設定し直します。httpsjms コネクションサービス設定プロパティについては、表 B-3 を参照してください。
手順 4. HTTPS コネクションを設定する
クライアントアプリケーションは、設定済みコネクションファクトリ管理対象オブジェクトを使用し、ブローカへの HTTPS コネクションを確立する必要があります。ただし、クライアントは Java Secure Socket Extension (JSSE) で提供される SSL ライブラリへもアクセスし、root 証明書を持つ必要もあります。SSL ライブラリは、JDK 1.4 に付属しています。それ以前の JDK バージョンを使用している場合は、「JSSE を設定する」を参照するか、あるいは「root 証明書をインポートする」に進みます。
これらの問題点が解決すると、HTTPS コネクションの設定に進みます。
JSSE jar ファイルを JRE_HOME/lib/ext ディレクトリにコピーします。
JSSE セキュリティプロバイダを静的に JRE_HOME/lib/security/java.security ファイルに追加します。次を追加します。
- jsse.jar、jnet.jar、jcert.jar
JDK 1.4 を使用していない場合は、-D オプションをクライアントアプリケーションを起動するコマンドに使用して、次の JSSE プロパティを設定します。
- security.provider.n=com.sun.net.ssl.internal.ssl.Provider
- n には、セキュリティプロバイダパッケージの次の利用可能優先順位が表示されます。
- java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol
root 証明書をインポートする
Web サーバの証明書に署名した認証局 (CA) の root 証明書が、デフォルトで信頼されるデータベースにない場合、または専用の Web サーバ証明書を使用している場合、信頼されるデータベースに証明書を追加する必要があります。これに該当する場合は、次の手順に従うか、あるいは「コネクションファクトリの属性を設定する」を参照します。証明書が cert_file に保存され、trust_store_file がキーストアであると想定して、次のコマンドを実行します。
次の質問に YES と答えます。Trust this certificate?
- JRE_HOME/bin/keytool -import -trustcacerts
-alias alias_for_certificate -file cert_file
-keystore trust_store_file
クライアントアプリケーションを起動するコマンドに -D オプションを使用して、次の JSSE プロパティを指定する必要もあります。
- javax.net.ssl.trustStore=trust_store_file
- javax.net.ssl.trustStorePassword=trust_store_passwd
コネクションファクトリの属性を設定する
HTTPS サポートを実装するには、次のコネクションファクトリの属性を設定します (「コネクションファクトリ管理対象オブジェクト」を参照)。
imqConnectionType 属性を HTTP に設定します。
コネクションファクトリ属性の設定は、次のいずれかの方法で行います。
imqConnectionURL に HTTPS トンネルサーブレット URL を設定します。
- ブローカへの安全なコネクションは、HTTP トンネルサーブレットではなく、HTTPS トンネルサーブレットを介して配置および接続することで確立されます。ただし、どちらのトンネルサーブレットも同じコネクションタイプを使用します。
- https://hostName:port/imq/tunnel
-o オプションを、コネクションファクトリ管理対象オブジェクトを作成する imqobjmgr コマンドに使用するか、コネクションファクトリ管理対象オブジェクト作成時に属性を設定する (「コネクションファクトリ管理対象オブジェクトの追加」を参照)
クライアントアプリケーションを起動するコマンドに -D オプションを使用する (『MQ 開発者ガイド』を参照)
プログラム的にクライアントアプリケーションコードに JMS API 呼び出しを作成したあと、これを使用してコネクションファクトリの属性を設定する (『MQ 開発者ガイド』を参照)
1 つのサーブレットを使用して、複数のブローカにアクセスする
複数のブローカを実行している場合、複数の Web サーバとサーブレットインスタンスを設定する必要はありません。現在実行中のブローカ間で 1 つの Web サーバと HTTPS トンネルサーブレットを共有できます。共有するには、imqConnectiodnURL コネクションファクトリの属性を、次のように設定する必要があります。
hostName の部分にはブローカのホスト名が入り、brokerName の部分にはクライアントにアクセスさせる特定のブローカインスタンス名が入ります。
- https://hostName:port/imq/tunnel?ServerName=hostName:brokerName
hostName と brokerName に正しい文字列を入力したことを確認するには、ブラウザからサーブレット URL にアクセスして、HTTPS トンネルサーブレットの状態レポートを生成します。レポートでは、サーブレットがアクセスしているすべてのブローカが次のように一覧表示されます。
HTTP プロキシを使用する
HTTP プロキシを使用して HTTPS トンネルサーブレットにアクセスする場合、次の設定を行います。クライアントアプリケーションを起動するコマンドに -D オプションを使用して、これらのプロパティを設定できます。
例 : HTTPS トンネルサーブレットを配置する
ここでは、HTTPS トンネルサーブレットを Sun ONE Web Server に jar ファイルおよび WAR ファイルとして配置する両方の方法を説明します。どちらを使用するかは、Sun ONE Web Server のバージョンによって決まります。Servlet 2.2 またはそれ以降がサポートされていない場合は、WAR ファイルの配置を行えません。
jar ファイルとして配置する
次の手順は、ブラウザベースの管理 GUI を使用した Sun ONE Web Server、FastTrack Edition 4.1 への配置を説明しています。この方法では、通常次の手順を実行します。次の項で、これらの手順について説明します。Web ブラウザを使用してサーブレットの URL にアクセスすると、HTTPS トンネルサーブレットが問題なく配置されたことが確認できます。ステータス情報も表示されます。
「Servlet」タブを選択します。
「Configure Servlet Attributes」を選択します。
「Servlet Name」フィールドに、トンネルサーブレットの名前を指定します。
「Servlet Code (class name)」フィールドに次の値を設定します。
「Servlet Classpath」フィールドに imqservlet.jar への絶対パスを入力します。たとえば、次のように指定します。
- com.sun.messaging.jmq.transport.
httptunnel.servlet.HttpsTunnelServlet
「Servlet args」フィールドに、表 B-4 に示す必要なオプションの引数を入力します。
- IMQ_HOME/lib/imqservlet.jar
(Solaris の場合、/usr/share/lib/imq/imqservlet.jar)
表 B-4    HTTPS トンネルサーブレット jar ファイルの配置に使用するサーブレット引数
引数
デフォルト値
必須 / オプション
関連項目
keystoreLocation
keystorePassword
serverHost
serverPort
- 引数は、次のようにカンマで区切ります。
- keystoreLocation=keystore_location,keystorePassword=keystore_password, servletPort=portnumber
- serverHost 引数と serverPort 引数は、Web サーバとブローカ間の通信にだけ適用され、またデフォルト値に問題があるときにだけ設定されます。ただしその場合、状況に応じてブローカ設定プロパティを設定する必要があります (表 B-3 を参照)。たとえば、次のように設定されます。
- imq.httpsjms.https.servletPort
トンネルサーブレットの仮想パス (サーブレット URL) を設定するには
「Servlet」タブを選択します。
「Configure Servlet Virtual Path Translation」を選択します。
「Servlet Name」フィールドに「サーブレットを追加する」の手順 3 と同じ値を設定します。
- たとえば、URL にhttp://hostName:port/imq/tunnel を指定する場合、「Virtual Path」フィールドに次の文字列を入力します。
- /imq/tunnel
「Servlet」タブを選択します。
「Configure Global Attributes」を選択します。
「Startup Servlets」フィールドに、「サーブレットを追加する」の手順 3 と同じサーブレット名の値を入力します。
サーバのアクセスログを無効にする
必ずしもサーバのアクセスログを無効にする必要はありませんが、無効にしたほうがより良いパフォーマンスを得ることができます。
WAR ファイルとして配置する
次の手順では、Sun ONE Web Server 6.0 Service Pack 2 での配置について説明しています。Web ブラウザを使用してサーブレットの URL にアクセスすると、HTTPS トンネルサーブレットが問題なく配置されたことが確認できます。ステータス情報も表示されます。HTTPS トンネルサーブレットを配置する前に、JSSE jar ファイルが Web サーバのクラスパスに含まれていることを確認します。これを確認する一番簡単な方法は、jsse.jar、jnet.jar、および jcert.jar を IWS60_TOPDIR/bin/https/jre/lib/ext にコピーすることです。
HTTPS トンネルサーブレットを配置する前に、配置記述子がキーストアファイルの配置場所を指し、キーストアパスワードを指定するように変更する必要もあります。
HTTPS トンネルサーブレット WAR ファイルを修正するには
WAR ファイルを一時ディレクトリにコピーします。
これで修正済みの imqhttps.war ファイルを使用して、HTTPS トンネルサーブレットを配置できるようになりました。キーストアパスワードの漏洩が心配な場合は、ファイルシステムアクセス権を使用して、imqhttps.war ファイルへのアクセスを制限できます。一時ディレクトリを現在のディレクトリにします。
- $ cp IMQ_HOME/lib/imqhttps.war /tmp
(Solaris の場合、$ cp /usr/share/lib/imq/imqhttps.war /tmp)
WAR ファイルの内容を抽出します。
- $ cd /tmp
WAR ファイルの配置記述子を一覧表示します。
- $ jar xvf imqhttps.war
web.xml ファイルを編集して、keystoreLocation と keystorePassword という引数に正しい値を設定します (必要に応じて serverPort と serverHost の引数も設定)。
- $ ls -l WEB-INF/web.xml
- $ jar uvf imqhttps.war WEB-INF/web.xml
HTTPS トンネルサーブレットを WAR ファイルとして配置するには
ブラウザベースの管理 GUI で、「Virtual Server Class」タブを選択します。「Manage Classes」をクリックします。
サーブレットは次のアドレスで利用可能となります。適切な仮想サーバクラス名 (defaultclass など) を選択して、「Manage」ボタンをクリックします。
「Manage Virtual Servers」を選択します。
適切な仮想サーバ名を選択し、「Manage」ボタンをクリックします。
「Deploy Web Application」をクリックします。
修正済みの imqhttps.war ファイルを指すように、「WAR File On and WAR File Path」フィールドに適切な値を選択します (「HTTPS トンネルサーブレット WAR ファイルを修正するには」を参照)。
「Application URI」フィールドに、「/imq」(入力時には、かぎカッコ不要) を入力します。
サーブレットを配置するインストールディレクトリのパス (通常は、Sun ONE Web Server インストールルートの任意の場所) を入力します。
クライアントはこの URL を使用して、安全なHTTPS コネクションを使用しているメッセージサービスに接続できます。
- https://hostName:port/imq/tunnel
前へ 目次 索引 次へ
Copyright © 2002 Sun Microsystems, Inc. All rights reserved.
最終更新日 2002 年 6 月 19 日