2011-09-27 6 views
0

저는 며칠 동안이 작업에 어려움을 겪었지만 아마존의 AWS와 관련이 있다고 생각합니다. SSH/HTTPS를 적용하여 실수로 사용자가 HTTP : // myaddress.com으로 이동하면 HTTPS : // myaddress.com으로 리디렉션됩니다. 내 Config.groovy 파일 파일이 추가되었습니다 :Grails와 AWS SSH/HTTPS 적용

environments { 
    production { 
     // force all traffic over HTTPS in production 
    grails.plugins.springsecurity.secureChannel.definition = [ 
     '/**': 'REQUIRES_SECURE_CHANNEL' 
    ] 
} 

문제는 내가 아마존에 AWS를 업로드 할 때, 내 응용 프로그램이 제대로 실행되지 않을 것입니다. 내 catalina.out 파일에 오류가 없습니다. 유일한 표시는 상태가 빨간색에서 녹색으로 바뀌지 않으며 시스템 상태 검사가 통과되지 않았다는 경고입니다. HTTP 또는 HTTPS 주소로 이동하면 페이지가 아무런 오류없이 흰색으로 표시됩니다. 누구든지이 문제를 겪거나 문제가 무엇인지 알고 있습니까? 응용 프로그램이 (오류가 없기 때문에) 문제가없는 것 같지만 제대로 리디렉션되지 않습니다. Spring Security가 설치되어 있고 HTTPS가 이미 설정되어 있습니다.

또한 웹 주소는 DNS를 사용하므로 HTTPS 주소가 컨트롤러와 동일하지 않습니다. 감사합니다. jason

답변

0

AWS beanstalk 응용 프로그램 구성에서 https 포트를 설정 했습니까?

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/index.html?using-features.managing.elb.html

Application Load balancer Configuration

+0

예, 모두 처리했습니다. 페이지를 HTTP와 HTTPS로 모두 볼 수 있으므로 작동하는 것 같습니다. HTTPS 만 적용하려고합니다. 하나 더 언급해야 할 것은 (위에서 추가 할 것입니다) 우리는 사용자가가는 DNS 주소도 가지고 있다는 것입니다. – jason

0

당신은 EC2 LB에서 SSL을 종료하고 있습니까? 그렇다면 EC2는 x-forwarded-proto 헤더를 설정하고 HTTP를 통해 요청을 전달합니다. 프로덕션 구성에서 다르게 처리해야합니다. Checkout http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/17%20Channel%20Security.html 헤더 체크에 대해 이야기합니다. LB가 SSL을 종료하면 웹 서버에서 HTTP 프로토콜을 확인할 수 없습니다. HTH.