Ssl

帶有反向代理的協議交換和帶有靜態連結的應用伺服器

  • April 22, 2011

這讓我真的很頭疼!

首先,一個更有效地解釋問題的模式:

 ------WWW / Internet--||-------------Intranet---------------

 +----------+            +----------+    HTTP    +----------+
 |          |            |  SSL     | ---------> |  Web  3. |
 |  Client  |     1.     |  reverse |     2.     |  App     |
 |          | ---------> |  Proxy   |            |  Server  |
 +----------+   HTTPS    +----------+            +----------+
  1. 客戶端通過 SSL 請求反向代理。
  2. 反向代理做協議切換到http並轉發請求包(ProxyPreserveHost開啟)
  3. 應用程序伺服器從請求標頭“host”變數中生成靜態連結。有了所有好東西 FQDN 和協議 ( http://FQDN.tld:80/etc ) :-( 當我擺弄標頭主機變數時,您知道 App Server 會回答什麼…(錯誤請求)
  4. 之後,反向代理通過 SSL 向客戶端發送響應。
  5. 自然,客戶端通過 http 請求所有連結的圖像和样式表。這個請求詢問反向代理並且被置若罔聞。

不受歡迎的解決方案:

  • Intranet 內的 SSL(安全性、性能和較少的調試選項)
  • Appserver 不可修改(不可討論)
  • mod_proxy_html(性能,DOM 解析器破壞了許多 JS)
  • Internet 區域中不允許 http 流量(安全

一切正常,只有協議切換會導致靜態連結出現問題。重定向通過 ProxyPassReverse 進行管理,但這不會影響靜態連結。

如何管理靜態連結通過 https?

如果可以刪除協議和附加的埠號就足夠了!

有沒有人需要更多資訊,我會在這裡提供:

代理是 apache 2.2.17!

AppServer 是帶有 tomcat 5.5 的 jboss!

非常感謝亨德里克

在 server.xml 中設置 proxyName 和 proxyPort,將 scheme 設置為“https”。見:http: //tomcat.apache.org/tomcat-5.5-doc/config/http.html

引用自:https://serverfault.com/questions/258657