您可以為 Rational DOORS Web Access 將 IBM HTTP Server 配置成反向 Proxy。反向 Proxy 伺服器提供額外的安全層,會保護網路中的 HTTP 伺服器,
並改良 Secure Sockets Layer (SSL) 要求的效能。使用反向 Proxy 時,您可以之後再視需要來變更部署拓蹼。
開始之前
- 安裝 Rational DOORS Web Access,但是不啟動 Rational DOORS Web Access 元件或伺服器。
- 安裝 IBM HTTP Server。
關於這項作業
反向 Proxy 伺服器是特殊的 HTTP 伺服器,會阻止直接存取內容 HTTP 伺服器。對內容所提出的所有要求會行經一個公開可見的反向 Proxy 伺服器 URI,
再重新導向至私密的 Rational DOORS Web Access 伺服器 URI。
使用反向 Proxy 伺服器的優點如下:
- 未來再變更部署拓蹼:當您在部署中使用反向 Proxy 時,不論應用程式部署在多少部機器和埠號上,
在公用 URL 中可以只提供一個主機名稱。因此您可以之後再變更部署拓蹼。
- 安全:反向 Proxy 伺服器提供額外的安全層,並且可以保護通訊網路中的其他 HTTP 伺服器。如果您在反向 Proxy 伺服器和內容 HTTP 伺服器之間使用防火牆,
可以將防火牆配置成只接受來自反向 Proxy 伺服器的 HTTP 要求。
- 效能:您可以為反向 Proxy 伺服器配備 SSL 加速硬體,以改良 SSL 要求的效能。
在本程序中,您將執行下列步驟:
- 準備 SSL 金鑰儲存庫。
- 修改 httpd.conf 檔。
- 啟動 IBM HTTP Server。
- 啟動 Rational DOORS Web Access 元件。
- 啟動 Rational DOORS Web Access 伺服器。
程序
- 將有效的 SSL 憑證金鑰檔放在您系統上的可存取位置。
- 如果要將 IBM HTTP Server 配置成處理 SSL 要求,請編輯位於 IBM HTTP Server 安裝架構 conf 目錄中的 httpd.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
註: 在本例中,一般使用者可以看見的 Proxy 埠設為 8443。視您的環境而定,為了避免埠衝突,配置給 Apache Tomcat 使用的埠可能設為不同值。
# 啟用用來接聽用戶端 SSL 要求的埠
Listen 0.0.0.0:8443
<VirtualHost *:8443>
# SSLEnable 指引會對虛擬主機啟用 SSL。
SSLEnable
# SSLProxyEngine 會切換伺服器是否使用 SSL Proxy 連線。
# 如果您的伺服器擔任 SSL 資源的反向 Proxy,必須指定 SSLProxyEngine on。
# 取決於 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>
# 這項指引容許遠端伺服器對映至本端伺服器的空間;就慣例來說,本端伺服器
# 不擔任 Proxy,但是會以遠端伺服器的鏡映形式出現。
# <Path> 是本端虛擬路徑的名稱。
# <url> 是遠端伺服器的局部 URL。
# ProxyPass <Path> <url>
# 附註:請保留尾端的斜線
ProxyPass / https://<dwa tomcat host>:<dwa tomcat port>/
# 這項指引可讓 Apache 調整 HTTP 重新導向回應中之 Location 標頭中的 URL。
# 當 Apache 作為反向 Proxy 時,由於在後端伺服器(位於反向 Proxy 後方)HTTP 會重新導向,
# 必須藉助這項功能,才能避免略過反向 Proxy。
# <Path> 是本端虛擬路徑的名稱。
# <url> 是遠端伺服器的局部 URL - 其用法和 ProxyPass 指引相同。
# ProxyPassReverse <Path> <url>
# 附註:請保留尾端的斜線
ProxyPassReverse / https://<dwa tomcat host>:<dwa tomcat port>/
# 這個選項會將 Host: 行從送入的要求傳遞給 Proxy 主機,而不是傳遞給
# proxypass 行中指定的專用主機名稱。
ProxyPreserveHost On
</VirtualHost>
# 除非明確配置,會停用其他所有虛擬主機的 SSL
SSLDisable
- 啟動 IBM HTTP Server。
- 啟動 Rational DOORS Web Access 元件。
- 啟動 Rational DOORS Web Access 伺服器。
- 輸入下列 dbadmin 指令,將 Rational DOORS Web Access 公用 URL 和埠設定給反向 Proxy 伺服器:
dbadmin -dwaHost reverse_proxy_url -dwaPort reverse_proxy_portnumber
如需 dbadmin 指令的相關資訊,
請參閱配置 Rational DOORS 資料庫伺服器。