IBM HTTP Server を Rational DOORS Web Access のリバース・プロキシーとして構成

IBM HTTP Server を Rational DOORS Web Access のリバース・プロキシーとして構成できます。 リバース・プロキシー・サーバーは、追加のセキュリティー層を提供し、ネットワーク内の HTTP サーバーを保護し、Secure Sockets Layer (SSL) 要求の パフォーマンスを向上させます。 リバース・プロキシーを使用すると、後で必要に応じてデプロイメント・トポロジーを変更できます。

始める前に

  1. Rational DOORS Web Access をインストールします。 ただし、Rational DOORS Web Access のコンポーネントもサーバーも始動しないでください。
  2. IBM HTTP Server をインストールします。

このタスクについて

リバース・プロキシー・サーバーは、コンテンツ HTTP サーバーに直接はアクセスできないようにする特殊な HTTP サーバーです。 コンテンツに対する要求はすべて、パブリック・リバース・プロキシー・サーバー URI を経由し、 プライベート Rational DOORS Web Access サーバー URI にリダイレクトされます。
リバース・プロキシー・サーバーを使用すると、以下のような利点があります。
  • 将来のデプロイメント・トポロジーの変更: デプロイメントでリバース・プロキシーを使用すると、 アプリケーションがデプロイされるマシン数やポート番号に関係なく、1 つのホスト名をパブリック URL に指定できます。 その結果、後でデプロイメント・トポロジーを変更することが可能になります。
  • セキュリティー: リバース・プロキシー・サーバーは、追加のセキュリティー層を提供するため、通信ネットワークにおける他の HTTP サーバーを保護できます。 リバース・プロキシー・サーバーとコンテンツ HTTP サーバーの間にファイアウォールを使用する場合は、 リバース・プロキシー・サーバーからの HTTP 要求のみを許可するようにファイアウォールを構成できます。
  • パフォーマンス: SSL 要求のパフォーマンスを向上させる可能性のある SSL 加速ハードウェアをリバース・プロキシー・サーバーに装備することができます。
この手順では、以下のステップを実行します。
  1. SSL 鍵ストアを準備します。
  2. httpd.conf ファイルを変更します。
  3. IBM HTTP Server を始動します。
  4. Rational DOORS Web Access コンポーネントを開始します。
  5. Rational DOORS Web Access サーバーを始動します。

手順

  1. 有効な SSL 証明書鍵ファイルを、ご使用のシステム上のアクセス可能な場所に配置します。
  2. SSL 要求を処理するように IBM HTTP Server を構成するために httpd.conf ファイルを編集します。 このファイルは、IBM HTTP Server インストール済み環境内の conf ディレクトリーにあります。
    1. 以下のモジュールのコメントを外します。
      • LoadModule proxy_module modules/mod_proxy.so
      • LoadModule proxy_http_module modules/mod_proxy_http.so
      • LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
    2. SSL 構成セクションに移動し、アプリケーション・サーバーの詳細を設定します。 標準の設定に加えて、このステップの例に示されているように、以下のパラメーターを設定する必要があります。
      • SSLProxyEngine
      • ProxyPass
      • ProxyPassReverse
    注: 以下の例では、エンド・ユーザーから認識できるプロキシー・ポートは 8443 に設定されています。 ご使用の環境によっては、Apache Tomcat の構成において使用することになっているポートが、ポートの競合を避けるために別の値に設定されることもあります。
    # Enable the port that listens for client SSL requests
    Listen 0.0.0.0:8443
    <VirtualHost *:8443>   
    # The SSLEnable directive enables SSL for the virtual host.   
    SSLEnable     
    
    # The SSLProxyEngine toggles whether the server uses SSL for proxied connections.   
    # SSLProxyEngine on is required if your server is acting as a reverse proxy for an SSL resource.   
    # Depends on mod_ibm_ssl.so   
    SSLProxyEngine on    
    
    # The SSLProtocolDisable directive enables you to specify one or more SSL protocols which cannot be 
    # used by the client for a specific virtual host.   
    # This directive must be located in a <VirtualHost> container.   
    # Supported protocols for a virtual host are supported separately.   
    # If all supported protocols are disabled, clients cannot complete an SSL handshake.   
    # The following possible values are available for this directive: SSLv2, SSLv3, TLS, TLSv1, TLSv1.1, TLSv1.2        
    SSLProtocolDisable SSLv2  
    SSLProtocolDisable SSLv3   
    
    # The keyfile directive sets the key file to use.   
    KeyFile <path to keystore>/<keystore filename>.kdb      
    
    # The SSLStashfile directive indicates path to file with file name containing the encrypted password 
    # for opening the PKCS11 device.   
    # Depends on mod_ibm_ssl.so   
    SSLStashfile <path to stash file>/.<stash filename>.sth     
    
    # The SSLServerCert directive sets the server certificate to use for this virtual host.   
    # Depends on mod_ibm_ssl.so  
    SSLServerCert <ssl certificate label>    
    
    # This directive allows remote servers to map into the space of the local server; the local server 
    # does not act as a proxy in the conventional sense, but appears as a mirror of the remote server.   
    # <Path> is the name of a local virtual path.   
    # <url> is a partial URL for the remote server.   
    # ProxyPass <Path> <url>   
    # Note: Retain the trailing slash   
    ProxyPass / https://<dwa tomcat host>:<dwa tomcat port>/     
    
    # This directive lets Apache adjust the URL in the Location header on HTTP redirect responses.    
    # This capability is essential when Apache is used as a reverse proxy, to avoid bypassing the reverse 
    # proxy because of HTTP redirects on the backend servers, which stay behind the reverse proxy.   
    # <Path> is the name of a local virtual path.   
    # <url> is a partial URL for the remote server - the same way they are used for the ProxyPass directive.   
    # ProxyPassReverse <Path> <url>   
    # Note: Retain the trailing slash   
    ProxyPassReverse / https://<dwa tomcat host>:<dwa tomcat port>/  
    
    # This option will pass the Host: line from the incoming request to the proxied host, instead of the 
    # private hostname specified in the proxypass line.  
    ProxyPreserveHost On
    
    </VirtualHost>
    
    # Disable SSL for all other virtual hosts unless explicitly configured
    SSLDisable
  3. IBM HTTP Server を始動します。
  4. Rational DOORS Web Access コンポーネントを開始します。
  5. Rational DOORS Web Access サーバーを始動します。
  6. 次の dbadmin コマンドを入力して、Rational DOORS Web Access パブリック URL およびポートを リバース・プロキシー・サーバーに設定します。
    dbadmin -dwaHost reverse_proxy_url -dwaPort reverse_proxy_portnumber
    dbadmin コマンドについて 詳しくは、『Rational DOORS Database Server の構成』を参照してください。

フィードバック