将 IBM HTTP Server 配置为 Rational DOORS Web Access 的逆向代理

您可以将 IBM HTTP Server 配置为 Rational DOORS Web Access 的逆向代理。逆向代理服务器提供额外一层安全性,保护网络中的 HTTP Server,并提高安全套接 字层 (SSL) 请求的性能。使用逆向代理时,可在稍后根据需要更改部署拓扑。

开始之前

  1. 安装 Rational DOORS Web Access,但不启动 Rational DOORS Web Access 组件或服务器。
  2. 安装 IBM HTTP Server。

关于此任务

逆向代理服务器是特殊的 HTTP Server,用于阻止对内容 HTTP Server 进行直接访问。对内容的所有请求都将经过公开可视的逆向代理服务器 URI,然后重定向至专用 Rational DOORS Web Access 服务器 URI。
使用逆向代理服务器具有以下几个优点:
  • 未来的部署拓扑可更改:当您在部署中使用逆向代理时,可在公共 URL 中提供一个主机名(不管在多少机器和端口号上部署了应用程序)。因此,可在稍后更改部署拓扑。
  • 安全性:逆向代理服务器提供额外一层安全性,并可保护通信网络中的其他 HTTP Server。如果在逆向代理服务器和内容 HTTP Server 之间使用防火墙,那么可将防火墙配置为仅允许来自逆向代理服务器的 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. 要将 IBM HTTP Server 配置为处理 SSL 请求,请编辑 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 所配置为使用的端口可设置为其他值以避免端口冲突。
    # 启用对客户机 SSL 请求进行侦听的端口
    Listen 0.0.0.0:8443
    <VirtualHost *:8443>   
    # SSLEnable 伪指令用于对虚拟主机启用 SSL。
    SSLEnable     
    
    # SSLProxyEngine 用于切换服务器是否对代理连接使用 SSL。
    # SSLProxyEngine on 在服务器充当 SSL 资源的逆向代理的情况下为必需。
    # 取决于 mod_ibm_ssl.so
    SSLProxyEngine on    
    
    # SSLProtocolDisable 伪指令使您能够指定一种或多种 SSL 协议,
    # 从而使特定虚拟主机的客户机不能使用这些协议。
    # 此伪指令必需位于 <VirtualHost> 容器内。
    # 虚拟主机支持的协议单独受支持。
    # 如果禁用了所有受支持的协议,那么客户机将无法完成 SSL 握手。
    # 以下可能值可用于此伪指令:SSLv2、SSLv3、TLS、TLSv1、TLSv1.1 和 TLSv1.2
    SSLProtocolDisable SSLv2  
    SSLProtocolDisable SSLv3   
    
    # Keyfile 伪指令用于设置要使用的密钥文件。
    KeyFile <path to keystore>/<keystore filename>.kdb      
    
    # SSLStashfile 伪指令用于指示文件名中包含加密密码的文件的路径,
    # 此密码用于打开 PKCS11 设备。
    # 取决于 mod_ibm_ssl.so
    SSLStashfile <path to stash file>/.<stash filename>.sth     
    
    # SSLServerCert 伪指令用于设置要用于此虚拟主机的服务器证书。
    # 取决于 mod_ibm_ssl.so
    SSLServerCert <ssl certificate label>    
    
    # 此伪指令使远程服务器能够映射到本地服务器的空间内;本地服务器
    # 并不充当传统意义上的代理,而是显示为远程服务器的镜像。
    # <Path> 是本地虚拟路径名。
    # <url> 是远程服务器的部分 URL。
    # ProxyPass <Path> <url>   
    # 注:请保留末尾的斜杠
    ProxyPass / https://<dwa tomcat host>:<dwa tomcat port>/     
    
    # 此伪指令使 Apache 能够调整 HTTP 重定向响应上 Location 头内的 URL。
    # 此功能在 Apache 用作逆向代理时不可或缺,它用于避免绕过逆向
    # 代理(由于存在于逆向代理背后的后端服务器上的 HTTP 重定向)。
    # <Path> 是本地虚拟路径名。
    # <url> 是远程服务器的部分 URL(以相同方式用于 ProxyPass 伪指令)。
    # ProxyPassReverse <Path> <url>   
    # 注:请保留末尾的斜杠
    ProxyPassReverse / https://<dwa tomcat host>:<dwa tomcat port>/  
    
    # 此选项将入局请求中的 Host: 行传递到代理主机,而不是
    # proxypass 行中指定的专用主机名。
    ProxyPreserveHost On
    
    </VirtualHost>
    
    # 对所有其他虚拟主机都禁用 SSL(除非显式配置了 SSL)
    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 数据库服务器

反馈