Apache 서버에서 HTTP를 HTTPS로 리다이렉트 시키는 방법

HTTP를 HTTPS로 자동 변경하기

얼마 전, certbot으로 무료 SSL 인증서를 발급하는 포스팅을 한 적이 있다. (포스팅 보러가기)
지난 포스팅에서 제시한 방법대로 진행했다면 아마 apache의 Rewrite를 이용하여 자동으로  'http to https' 설정이 되어 있을 것이다.
하지만 구버전의 certbot을 이용하였거나, certbot SSL 인증서를 이용하지 않을 경우에는 직접 설정해주어야 하는데 이번 포스팅에서는 Apache 서버에서 HTTP를 HTTPS로 리다이렉트 시키는 방법에 대해 알아보겠다.

이론공부 : HTTP와 HTTPS의 차이점과 장점

HTTP는 웹 브라우저와 웹 서버가 통신하는 데 사용되는 프로토콜인데, 이는 보안이 취약하기 때문에 데이터가 가로채어질 우려가 있다. 그래서 HTTPS라는 프로토콜이 등장했는데, HTTPS는 HTTP를 암호화하여 보안을 강화하기 위해 TLS/SSL 기술을 적용한 것이다.

HTTPS 사용시, 데이터가 양방향으로 암호화되어 중간에 민감한 정보가 유출될 위험이 줄어든다. 또한 대부분의 웹 브라우저에서 HTTPS 사이트가 안전하다는 것을 보여주고 있다.
HTTPS를 사용하면 웹 페이지 로딩 속도를 높여주는 HTTP/2라는 성능 개선된 프로토콜을 사용할 수 있으며, 구글은 HTTPS 사이트를 우대한다. (검색 순위에 영향을 줌)

Apache 서버에서 리다이렉트 시키기

리다이렉트란 한 URL에서 다른 URL로 자동으로 이동시키는 것으로 Apache 서버에서 HTTP를 HTTPS로 자동 리다이렉트시키는 방법은 여러가지가 있다.

가장 보편적인 방법은, 가상 호스트 설정 파일에 Redirect 명령어를 사용하는 것인데, 이 방법은 가상 호스트 설정 파일에서 다음과 같은 코드를 작성하면 된다.

virtualhost파일에 설정하기

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
Protocols h2 http/1.1

SSL Configuration
Other Apache Configuration
</VirtualHost>
작성 후에는 Apache 서버를 재시작해야 한다.

이렇게 적용하면 된다. SSL 인증서 설정 부분은 생략했다.

.htaccess파일에 설정하기

만약 가상 호스트 설정 파일에 접근할 수 없는 경우, 도메인의 .htaccess 파일에 RewriteRule 명령어를 사용하여 리다이렉트할 수 있다.
(web root 에 .htaccess 파일을 만들어서 아래 내용을 입력한다.)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

이 세팅은 Apache를 재시작 할 필요없이 바로 적용된다.

이렇게 적용하면 된다.

마치며

이렇게 Apache 서버에서 HTTP를 HTTPS로 리다이렉트 시키는 방법에 대해 알아봤다.
HTTPS는 HTTP보다 보안과 성능이 뛰어나기 때문에 웹 사이트를 운영하는 사람들은 꼭 HTTPS로 전환해야 한다고 생각한다. 이제는 선택이 아닌 필수인 것이다.
만약 아직까지 SSL을 적용하지 않았거나 http접속을 허용해두었다면 Apache 서버에서 리다이렉트 시키는 방법은 간단하니까 얼른 해보자.
그러면 웹 사이트가 더 안전하고 빠르게 접속될 것이다.


글 쓰는 Jiniwar


댓글

이 블로그의 인기 게시물

crontab 설정방법과 로그 확인하는 법

Microsoft Defender 방화벽 설정 또는 해제하는 방법

한국 군비지출 세계 9위