【问题标题】:Grails and AWS enforcing SSH/HTTPSGrails 和 AWS 强制执行 SSH/HTTPS
【发布时间】:2011-11-26 04:10:18
【问题描述】:

我已经为此苦苦挣扎了几天,但我认为这与亚马逊的 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'
    ]
}

问题是当我上传到亚马逊 AWS 时,我的应用程序将无法正常运行。我的 catalina.out 文件中没有错误。唯一的指示是状态不会从红色变为绿色,并且有系统健康检查未通过的警告。当我导航到 HTTP 或 HTTPS 地址时,页面是空白的,没有错误。有没有人遇到过这个或知道问题是什么?看起来该应用程序很好(由于没有错误),但它没有被正确重定向。我已经安装了 Spring Security,并且已经设置了 HTTPS。

此外,Web 地址使用 DNS,因此 HTTPS 的地址与控制器的地址不同。 谢谢 杰森

【问题讨论】:

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


    【解决方案1】:

    您要在 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。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,这一切都已经处理好了。我可以以 HTTP 和 HTTPS 的形式查看该页面,因此这似乎可以正常工作。我只想强制执行 HTTPS。我应该提到的另一件事(我将在上面添加)是我们还有一个用户可以访问的 DNS 地址。
      猜你喜欢
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 2023-03-10
      相关资源
      最近更新 更多