您可以将 IBM HTTP Server 配置为 Rational DOORS Web Access 的逆向代理。逆向代理服务器提供额外一层安全性,保护网络中的 HTTP Server,并提高安全套接
字层 (SSL) 请求的性能。使用逆向代理时,可在稍后根据需要更改部署拓扑。
开始之前
- 安装 Rational DOORS Web Access,但不启动 Rational DOORS Web Access 组件或服务器。
- 安装 IBM HTTP Server。
关于此任务
逆向代理服务器是特殊的 HTTP Server,用于阻止对内容 HTTP Server 进行直接访问。对内容的所有请求都将经过公开可视的逆向代理服务器 URI,然后重定向至专用 Rational DOORS Web Access
服务器 URI。
使用逆向代理服务器具有以下几个优点:
- 未来的部署拓扑可更改:当您在部署中使用逆向代理时,可在公共 URL 中提供一个主机名(不管在多少机器和端口号上部署了应用程序)。因此,可在稍后更改部署拓扑。
- 安全性:逆向代理服务器提供额外一层安全性,并可保护通信网络中的其他 HTTP Server。如果在逆向代理服务器和内容 HTTP Server 之间使用防火墙,那么可将防火墙配置为仅允许来自逆向代理服务器的 HTTP 请求。
- 性能:可以为逆向代理服务器配备可提高 SSL 请求性能的 SSL 加速硬件。
在该过程中,执行以下步骤:
- 准备 SSL 密钥库。
- 修改 httpd.conf 文件。
- 启动 IBM HTTP Server。
- 启动 Rational DOORS Web Access 组件。
- 启动 Rational DOORS Web Access 服务器。
过程
- 将有效的 SSL 证书密钥文件置于系统上可访问的位置。
- 要将 IBM HTTP Server 配置为处理 SSL 请求,请编辑 httpd.conf 文件(位于 IBM HTTP Server 安装版中的 conf 目录内)。
- 对以下模块进行取消注释:
- 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
- 转至 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
- 启动 IBM HTTP Server。
- 启动 Rational DOORS Web Access 组件。
- 启动 Rational DOORS Web Access 服务器。
- 通过输入以下 dbadmin 命令将 Rational DOORS Web Access 公共 URL 和端口设置为逆向代理服务器:
dbadmin -dwaHost reverse_proxy_url -dwaPort reverse_proxy_portnumber
有关 dbadmin 命令的更多信息,请参阅配置 Rational DOORS 数据库服务器。