Ssl

當 HTTPS 通過 Pound 代理訪問時,Tomcat/JIRA 重定向到 HTTP

  • July 23, 2012

我正在嘗試讓 JIRA 安裝在執行 SSL 終止/“加速”的 Pound 代理後面工作。不幸的是,JIRA(Coyote)在訪問時似乎正在重定向到 HTTPS:

C:\Users\Josh>openssl s_client -connect www:443
...
---
GET /support HTTP/1.1
Host: www

HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://www/support/
Transfer-Encoding: chunked
Date: Sat, 21 Jul 2012 16:05:03 GMT

0

我不知道如何阻止這個……這是我的英鎊配置:

ignorecase 1

listenhttps
 address 10.3.0.12
 port 443
 cert "/usr/local/etc/bundle.pem"

 service
   headrequire "Host: www"
   url "/support.*"
   backend
     address 10.3.0.16
     port 8080
   end
   session
     type cookie
     ttl 1800
     id "X-SA"
   end
 end
end

Tomcat 或 JIRA 中是否有任何設置會影響這一點?

我想通了,Tomcat中的代理設置解決了它(proxyPort和proxyName,IIRC)。

真高興你做到了。如果有用的話,我會嘗試為此添加一些顏色。當使用上游設備(代理、負載平衡器等)終止 SSL 時,下游服務不會知道這一點。因此,您的 Tomcat 看到的是正常的 HTTP 流量,特別是對於只有“/”的 URI。此時,Tomcat 正在執行一個自引用重定向到 /support/,應用程序在此配置。

當它這樣做時,它會建構 URI 以使用 http://… 而不是 HTTPS://,因為它實際上不知道正在執行 SSL 的上游代理。通過添加上面的 proxyPort 和 ProxyName 指令,您已經讓 Tomcat 明確了解上游設備,因此它現在將使用 https:// 重建這些重定向,這將起作用。

——馬特

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