Ssl
帶有反向代理的協議交換和帶有靜態連結的應用伺服器
這讓我真的很頭疼!
首先,一個更有效地解釋問題的模式:
------WWW / Internet--||-------------Intranet--------------- +----------+ +----------+ HTTP +----------+ | | | SSL | ---------> | Web 3. | | Client | 1. | reverse | 2. | App | | | ---------> | Proxy | | Server | +----------+ HTTPS +----------+ +----------+
- 客戶端通過 SSL 請求反向代理。
- 反向代理做協議切換到http並轉發請求包(ProxyPreserveHost開啟)
- 應用程序伺服器從請求標頭“host”變數中生成靜態連結。有了所有好東西 FQDN 和協議 ( http://FQDN.tld:80/etc ) :-( 當我擺弄標頭主機變數時,您知道 App Server 會回答什麼…(錯誤請求)
- 之後,反向代理通過 SSL 向客戶端發送響應。
- 自然,客戶端通過 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