我是游戏中的新手,我至少尝试在登录时使用HTTPS并注册页面,以便在敏感用户数据上获得更高的安全性。 我对此有一系列问题:
我已将我的播放应用程序配置为在具有https.port属性的application.conf文件中使用https。但是在我的开发环境中,我似乎无法使用https功能启动服务器,除非我使用命令:play -Dhttps.port=<port>
为什么会这样?我认为我可以使用dev.conf(现在是application.conf)文件来执行此操作。使用配置文件中指定的这种设置时,无法在开发模式下启动服务器吗?
虽然我使用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>
我应该在整个应用程序中使用https,还是只保护登录和注册请求就足够了?
我觉得提供的官方文件相当不足,我在这里试图弄清楚我应该怎么做。
任何帮助都会非常感激!
答案 0 :(得分:4)
我同意Fernando的观点,我认为设置前端Web服务器更容易。在我的情况下,我使用了Lighttpd,设置相当简单。我建议:
回答主要问题:
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设置。