아마존 LOAD BALANCER를 이용하여 https 즉 ssl 인증서를 내 AWS EC2에 장착하였다. 그리고 조금 더 나아가  http로 들어오는 request를 모두 https 쪽으로 리다이렉트를 시켜 보다 안전한 웹사이트로 만들고 싶었다.

그래서 기존에 NGINX 서버 설정하듯이 sites-enabled 폴더안에서 리다이렉션 설정을 하였는데...

LOAD BALANCER Health check에서 계속 outofservice를 당한다. 포트를 이리 바꿔보고 저리 바꿔봐도 health check 때문에 LOAD BALANCER와 EC2를 이어지지 않는다.에 그래서 할 수 없이  자바스크립트로 아래와 같이 설정하니 되긴 된다.

<script>
var current_url = window.location.href;
if (current_url.includes("localhost")){
console.log("development");
}else{
console.log("production");
if(window.location.protocol != 'https:') {
location.href = location.href.replace("http://", "https://");
}
}
</script>

위 코트드는 디벨롭먼트 환경에서는 그냥 두고 프로덕션 환경에서 http 사이트를 강제로 https로 바꿔주는 자바스크립트 코드이다.

근데 stack flow 이런데 보니까 자바스크립트로 하는 것보다 웹서버에서 설정하는게 훨씬 reliable하다고 하는데... 이렇게 하면 뭐가 문제가 되는지 아직 파악하지 못했다. 뭐 아무튼 AWS EC2에 https를 사용하고 싶고 그러면 LOAD BALANCER가 필수적인데 NGINX 설정 하니 LOAD BALANCER에서 EC2를 잡아주지 못하니 어쩔 수 없이 이렇게 했다.

+ Recent posts