我最近从Apache切换到Nginx作为Play前端服务器。前端对HTTPS进行加密。
在我的应用程序中,我也有一个不寻常的案例,我使用WS库来调用同一个应用程序(是的,我的应用程序foo通过WS调用我的应用程序foo - 请不要问)。
到目前为止,对于Apache,我从来不必关心Play方面的加密。使用Nginx它也可以正常工作,直到它达到这个WS自我调用。如果我没有添加我在Nginx中使用的相同证书来播放application.conf,那么WS自我调用就会拒绝工作。它会导致SSLHandshakeException。这是我必须添加到Play的application.conf中以使WS自调用工作:
play.ws.ssl {
trustManager = {
stores = [
{ type = "PEM", path = "/path/to/same/cert/as/for/nginx/mycert.crt" }
]
}
}
详细的SSLHandshakeException Play抛出:http://pastebin.com/dSidGSxL
Nginx'的重要部分(我认为)配置:http://pastebin.com/xrdmZiK9
我现在的问题:Nginx + Play是否有办法,我不必为HTTPS配置Play游戏 - 比如Apache + Play组合?