일기장

2020-12-23 http 요청을 https로 redirect

Nj 2020. 12. 23. 14:07

기본적으로 http 요청은 불허하고 https만 사용한다.

이유는 서버단에서 데이터를 주고 받을때 데이터 자체를 암호화하지 않고 있어서 패킷 까보면 다 보이기 때문이다. 

보안 강화를 위함이다.

2년 주기로 인증서를 돈주고 사서 갱신해주고 있지만 그정도는 할만하다.

 

그런데 간혹 http 요청을 못 빼는 상황이 있다. 

예를 들자면 jenkins... 분명히 찾아보면 어딘가 설정이 있을텐데 못 찾았다.

결국 관련 url로 http 요청이 오면 https로 redirect 하는 것으로 넘겼다.

참고로 앞단은 nginx를 사용하고 있다. 

1. https 요청이 아니면 403 처리

server {
    return 403;
}

 

2. http 요청인데 조건이 맞으면 redirect


server {
    listen      80;
    server_name stage-service.enqdeq.net;
    access_log  /var/log/nginx/stage-service_80.access.log json-log;

    if ($http_x_forwarded_proto != 'https') {
        rewrite ^(.*) https://$host$1 redirect;
    }
}

대신에 로그는 남겨서 어떤 요청인지 들어온건지 이력은 남겨서 감시한다.