2017-11-03 164 views
1

設置:通過ECS,Elastic Load Balancer在前面部署在Amazon EC2實例上的Play Framework應用程序。我想只允許應用程序的HTTPS請求。AWS上的HTTPS-only Play Framework ECS

我發現了幾種使用HTTPS和Play的方式,但是對於(dockerized)Play應用程序,最佳做法有哪些優缺點?

  1. 直接在Play中啓用HTTPS(在配置文件中使用-Dhttps.port或https.port)。
  2. 設置前端Web服務器(例如Nginx)並讓它處理HTTP-> HTTPS重寫(example)。
  3. 在Play中實現請求過濾器並重定向應用程序內的請求(as described here)。

我不那麼熱衷於使用第一個版本,因爲我必須在每個實例上單獨管理證書,但爲了完整起見,我列出了它。 我認爲第三種方法的一個優點必須是系統架構比​​第二個版本更簡單,並且需要更少的配置。使用第三種方法有什麼缺點(例如性能)?

回答

1

如果您使用的是負載平衡器,那麼您應該從Amazon Certificate Manager服務申請一個免費的SSL證書,然後將該證書附加到負載平衡器。

要啓用HTTP到HTTPS重定向,您只需檢查負載平衡器傳遞到服務器的x-forwarded-proto標頭。如果是http則返回301與https。你鏈接的文章涵蓋了這部分。

+0

感謝關於證書管理器的提示。我知道轉發可以通過我鏈接的文章來實現。不過,我想知道應該採用哪種方法來實現轉發 - 直接在Play中或前面的專用網絡服務器上?我應該注意到這兩種方法的優點(例如性能)是否有優勢? – Paco1

+0

這兩種方法都沒有真正的優勢/劣勢。如果您尚未使用反向代理服務器,那麼我不會擔心設置一臺服務器,因爲它會增加複雜性並使用一些服務器的RAM。 –