Play Framework提供HTTPS内容

时间:2014-07-08 22:16:46

标签: https playframework

我是游戏中的新手,我至少尝试在登录时使用HTTPS并注册页面,以便在敏感用户数据上获得更高的安全性。 我对此有一系列问题:

  1. 我已将我的播放应用程序配置为在具有https.port属性的application.conf文件中使用https。但是在我的开发环境中,我似乎无法使用https功能启动服务器,除非我使用命令:play -Dhttps.port=<port> 为什么会这样?我认为我可以使用dev.conf(现在是application.conf)文件来执行此操作。使用配置文件中指定的这种设置时,无法在开发模式下启动服务器吗?

  2. 虽然我使用https功能启动服务器,但在游戏中使用https的正确方法是什么?我已经创建了一个我使用的java密钥库,并尝试使用redirect(securedIndexCall.absoluteURL(request, secure))将请求重定向(从控制器)到https url。但它似乎至少在我的开发环境(localhost)上没有用。日志指定例外:

    java.lang.IllegalArgumentException: empty text java.lang.IllegalArgumentException: invalid version format: M¥å/=<junk characters continue>

  3. 我应该在整个应用程序中使用https,还是只保护登录和注册请求就足够了?

  4. 我觉得提供的官方文件相当不足,我在这里试图弄清楚我应该怎么做。

    任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:4)

我同意Fernando的观点,我认为设置前端Web服务器更容易。在我的情况下,我使用了Lighttpd,设置相当简单。我建议:

  1. 按照这些说明配置Lighttpd(在此阶段,不要担心HTTPS只是让HTTP工作):http://www.playframework.com/documentation/2.3.x/HTTPServer
  2. 然后在Lighttpd中配置HTTPS:http://redmine.lighttpd.net/projects/1/wiki/HowToSimpleSSL。如果您打算购买SSL证书,那么还可以设置更多选项(例如中间证书)。以下页面提供了更多信息:http://redmine.lighttpd.net/projects/1/wiki/Docs_SSL

  3. 回答主要问题:

    1)在Play中启用HTTPS

    是的,你必须明确表示你想在启动时使用HTTPS http://www.playframework.com/documentation/2.3.x/ConfiguringHttps

    2)“java.lang.IllegalArgumentException”错误消息

    密钥库可能存在问题。这篇SO文章似乎更详细地讨论:Play framework 2.2.1 HTTPs fails on connection attempt

    3)登录页面或整个应用程序的SSL

    就个人而言,我会选择整个应用程序。如果您正在花时间设置HTTPS,我认为您可以覆盖整个网站。我想在运行HTTPS时会有轻微的性能开销,但实际上并不是你注意到的。

答案 1 :(得分:1)

您应该使用HTTPS的前端服务器,并对整个应用程序使用HTTPS。

请参阅Setting up a front end HTTP server并查看注释掉的nginx设置。