http를 https 통신으로 강제 전환 시키기 (아파치)
http://www.test.com 으로 접속한 사용자를 강제로 https://www.test.com 으로 전환 시키는 방법에 대해서 알아보자.
사실 아주 간단한 웹사이트라면 굳이 SSL 증명서를 추가하여 https 통신을 해야 할 이유는 없다. 하지만 로그인처럼 이용자가 개인정보를 서버에 보내야 하는 웹사이트에는 https 통신이 필수이다. 그러한 웹사이트는 이용자의 정보 보호를 해킹으로 부터 방지하기 위해 https 필수적으로 통신만을 사용해야한다.
아파치에서 설정하는 방법
우선 서버의 아파치 httpd 관련 설정파일을 열어준 후 <VirtualHost *:80>
섹션을 찾는다. 기본적으로 http 통신은 80번 포트를 통해 이루어지기 때문에, 80번 포트에 들어오는 통신에 대한 설정을 하면 되는 것. 여러가지 VirtualHost를 사용하지 않고 하나만 사용하고 있는 경우엔 <VirtualHost _default_:80>
이라고 되어 있는 경우도 있다.
<VirtualHost *:80>
...기타 설정들
#모든 접속을 https로 전환하는 설정 키기
RewriteEngine on
#HTTPS 접속이 아닌 경우에만 실행
RewriteCondition %{HTTPS} !=on
#서버 접속 요청을 HTTPS로 바꾸기
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
위와 같이 설정을 해주면 80번 포트에 오는 요청을 https로 보낼 수 있다. 즉 443번 포트로 요청을 넘겨줄 수 있는 것.
설정 파일을 저장한 후에는 아파치를 다시 실행해야 한다.