Grails和AWS实施SSH / HTTPS

时间:2011-09-27 15:35:58

标签: grails spring-security amazon-web-services

我几天来一直在努力解决这个问题,但我认为这与亚马逊的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的地址与控制器不同。 谢谢 杰森

2 个答案:

答案 0 :(得分:0)

只是想一想......您是否在AWS beanstalk应用程序配置中设置了https端口?

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/index.html?using-features.managing.elb.html

Application Load balancer Configuration

答案 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。