我几天来一直在努力解决这个问题,但我认为这与亚马逊的AWS有关。我想强制执行SSH / HTTPS,这样如果用户无意中转到HTTP:// myaddress.com,他们将被重定向到HTTPS:// myaddress.com。我已将此添加到config.groovy文件中:
environments {
production {
// force all traffic over HTTPS in production
grails.plugins.springsecurity.secureChannel.definition = [
'/**': 'REQUIRES_SECURE_CHANNEL'
]
}
问题是当我上传到amazons AWS时,我的应用程序将无法正常运行。我的catalina.out文件中没有错误。唯一的指示是状态不会从红色变为绿色,并且系统运行状况检查未通过警告。当我导航到HTTP或HTTPS地址时,页面为空白,没有错误。有没有人遇到这个或知道问题是什么?看起来应用程序很好(由于没有错误)但它没有被正确地重定向。我安装了Spring Security,并且已经设置了HTTPS。
此外,Web地址使用DNS,因此HTTPS的地址与控制器不同。 谢谢 杰森
答案 0 :(得分:0)
只是想一想......您是否在AWS beanstalk应用程序配置中设置了https端口?
答案 1 :(得分:0)
您是否在EC2 LB处终止SSL?如果是这样,EC2将设置x-forwarded-proto标头并通过HTTP转发请求。您的生产配置需要以不同方式处理。结帐http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/17%20Channel%20Security.html他们在哪里谈论标题检查。如果LB正在终止SSL,则无法检查Web服务器上的HTTP协议。 HTH。