我正在尝试让 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
我不知道如何阻止这种情况...这是我的 Pound 配置:
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 中是否有任何设置会影响这一点?
答案1
很高兴您让它正常工作。如果有用的话,我会尝试添加一些颜色。当使用上游设备(代理、负载平衡器等)终止 SSL 时,下游服务不会知道这一点。因此,您的 Tomcat 看到的是正常的 HTTP 流量,特别是对于仅是“/”的 URI。此时,Tomcat 正在执行自引用重定向到 /support/,应用程序在那里配置。
当它执行此操作时,它会构建 URI 以使用 http://... 而不是 HTTPS://,因为它实际上不知道执行 SSL 的上游代理。通过添加上面的 proxyPort 和 ProxyName 指令,您已让 Tomcat 明确了解上游设备,因此它现在将使用 https:// 重建这些重定向,这将起作用。
--马特
答案2
我明白了,Tomcat 中的代理设置解决了这个问题(proxyPort 和 proxyName,IIRC)。