2017-11-03 1 views
1

ECS, Elastic Load Balancer를 통해 Amazon EC2 인스턴스에 배치 된 Play Framework 애플리케이션입니다. 응용 프로그램에 대한 HTTPS 요청 만 허용하려고합니다.AWS ECS의 HTTPS 전용 Play Framework

재생과 함께 HTTPS를 사용하는 방법은 여러 가지가 있지만 장점과 단점은 무엇이며 (도킹 된) Play 앱의 경우 가장 좋은 방법은 무엇입니까?

  1. 재생 내에서 HTTPS를 직접 활성화합니다 (설정 파일의 -Dhttps.port 또는 https.port 사용).
  2. 프런트 엔드 웹 서버 (예 : Nginx)를 설정하고 HTTP-> HTTPS 다시 쓰기 (example)를 처리하도록합니다.
  3. Play에서 요청 필터를 구현하고 애플리케이션 내에서 요청을 리디렉션합니다 (as described here).

각 인스턴스마다 인증서를 별도로 관리해야하므로 처음 버전을 사용하는 것이 그리 열렬한 것은 아니지만 완벽 성을 위해 나열했습니다. 세 번째 접근법으로 생각할 수있는 한 가지 이점은 시스템 아키텍처가 두 번째 버전보다 간단하고 구성이 덜 필요하다는 것입니다. 세 번째 방법을 사용하는 데 불이익 (예 : 실적)이 있습니까?

답변

1

부하 분산 장치를 사용하는 경우 Amazon Certificate Manager 서비스에서 무료 SSL 인증서를 요청한 다음 해당 인증서를 부하 분산 장치에 연결해야합니다.

HTTP에서 HTTPS로 리디렉션하도록 설정하려면 부하 분산 장치가 서버에 전달하는 x-forwarded-proto 헤더를 확인하기 만하면됩니다. http 인 경우 https으로 301을 반환합니다. 당신이 링크 한 기사는이 부분을 다룹니다.

+0

인증서 관리자 관련 팁을 보내 주셔서 감사합니다. 나는 포워딩이 내가 연결된 기사들로 성취 될 수 있음을 안다. 그러나 나는 Play에서 직접 또는 전방에 전용 웹 서버와 함께 포워딩을 달성하기 위해 어떤 접근법을 사용해야하는지 알고 싶습니다. 내가 알아야하는 접근 방식에 대한 이점 (예 : 성능)이 있습니까? – Paco1

+0

어느 쪽의 접근 방법에도 큰 장점/단점이 없습니다. 아직 역방향 프록시 서버를 사용하고 있지 않다면 복잡성을 추가하고 서버의 일부 RAM을 사용하므로 설정하는 것에 대해 걱정하지 않아도됩니다. –