gpt4 book ai didi

grails - jelastic grails 将 http 重定向到 https

转载 作者:行者123 更新时间:2023-12-02 14:07:35 25 4
gpt4 key购买 nike

我有一个域 app.mydomain.com,它使用 A 记录映射到公共(public) IP(来自属于 mysub.jelastic.dogado.eu 的 tomcat 服务器)
我已经配置了 SSL 自定义证书,所有 HTTPS 请求都运行良好。

我需要的是我的应用程序只使用 HTTPS,所有 HTTP 请求都被重定向到 HTTPS,
因此,我以这种方式配置了 spring 安全插件(我的应用程序上的 1.2.7.4):

grails.plugins.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugins.springsecurity.portMapper.httpPort = 8080
grails.plugins.springsecurity.portMapper.httpsPort = 8443
grails.plugins.springsecurity.secureChannel.secureHeaderName = 'X-Forwarded-Proto'
grails.plugins.springsecurity.secureChannel.secureHeaderValue = 'http'
grails.plugins.springsecurity.secureChannel.insecureHeaderName = 'X-Forwarded-Proto'
grails.plugins.springsecurity.secureChannel.insecureHeaderValue = 'https'
grails.plugins.springsecurity.auth.forceHttps = true
grails.plugins.springsecurity.secureChannel.definition = [
'/**': 'REQUIRES_SECURE_CHANNEL'
]

在 localhost 上它工作得很好,所有的 http 请求都被重定向到 https,但是在 jelastic 中没有发生任何事情。我尝试了很多配置,将 https 端口替换为 8743/443,但结果相同。任何帮助将不胜感激。

非常感谢,
卡塔林

最佳答案

X-Forwarded-Proto header 仅在您的环境中有负载均衡器(或使用共享解析器,但因为您使用的是在这种情况下无法应用的自定义 SSL 证书)时才设置。

如果您的环境中没有负载均衡器,这就是检查不起作用的原因 - 因为根本没有设置这些 header 。

如果您确实有负载均衡器,则对 Tomcat 的所有请求都将定向到端口 80(通过端口转发重定向到 8080);包括发送到 https 的请求(因为负载均衡器在这种情况下执行“SSL 卸载”。因此,您正在 grails 规则(8743 和 X-Forwarded-Proto)中寻找不可能的组合。根据您的环境拓扑,您将拥有一个这些情况或其他情况,但不是两者兼而有之。

编辑:您还应该仔细检查您的 server.xml 以确保您有这个:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />

注意 redirectPort值(value);它应该是 443,因为这是将发送到浏览器进行重定向的端口 - 使用负载均衡器(或 Jelastic 共享解析器)代理请求,浏览器需要在端口 443 上请求(即使 Tomcat SSL 连接器是在 8743 上配置 - 如果适用),因为代理使用标准端口编号(即 https://没有任何端口号 = 443)。

即使您使用的是独立的 Tomcat(没有负载均衡器,也不是通过 Jelastic Shared Resolver),这些对 443 的请求也会自动转发到 8743。

关于grails - jelastic grails 将 http 重定向到 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com