Ncloud에서 http 접속 시에 https로 강제 리다이렉트 시키는 방법 - Apache/CentOS입니다

개요

웹사이트 SSL 인증서를 설치하고 https 접속을 유도할 때 http로 접속하면 https로 강제로 리다이렉트 시키는 방법을 사용하는 경우가 많습니다. 웹페이지 소스에서 http 접속 여부를 판단해서 redirect 시키는 방법 등 여러가지 있을 수 있는데 여기서는 Apache 설정으로 쉽게 할 수 있는 방법을 소개합니다.

SSL 인증서가 설치되어 있다는 가정하에 우선 Linux CentOS에서 설정하는 방법을 확인해보겠습니다.

테스트 환경

테스트에 사용한 서버 환경은 다음과 같습니다.

⁃ OS: CentOS 7.8
⁃ 웹서버: Apache 2.4

Apache conf 파일 수정

/etc/httpd/conf/httpd.conf 또는 별도로 설정한 /etc/httpd/conf.d/사이트도메인.conf 등의 Vritual host에 다음 코드를 추가하고 Apache를 재시작하면 됩니다.

방법1 : Redirect 옵션

첫번째 방법은 [Redirect] 옵션을 이용하는 방법입니다.
HTTP 환경 설정에서 [ServerName]을 제외한 다른 항목들은 모두 삭제하거나 주석처리한 후에 리다이렉트 설정을 추가합니다.

<VirtualHost *:80>
    ServerName 사이트_도메인

    Redirect permanent / https://사이트_도메인/    
</VirtualHost> 
  • 301 리다이렉트: Redirect permanent / https://사이트_도메인/
  • 302 리다이렉트: Redirect / https://사이트_도메인/
  • 301 리다이렉트: Redirect 301 / https://사이트_도메인/
  • 302 리다이렉트: Redirect 302 / https://사이트_도메인/
  • 307 리다이렉트: Redirect 307 / https://사이트_도메인/
  • 308 리다이렉트: Redirect 308 / https://사이트_도메인/

방법2 : RewirteRule 옵션

두번째 방법은 [RewirteRule] 옵션을 이용하는 방법입니다.
첫번째 방법이 더 간편하기는 하지만, 리다이렉트 시킬 때 HTTP 상태코드 뿐만 아니라 HTTP Header 값 등 다양한 설정이 필요한 경우에는 [RewirteRule]을 이용하는 두번째 방법을 사용해야 합니다.

<VirtualHost *:80>
    ServerName 사이트_도메인

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost> 

위 설정 중에서 [R=301,L] 이 부분에 원하는 상태코드를 입력하면 됩니다.

  • 301 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
  • 302 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L]
  • 307 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=307,L]
  • 308 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=308,L]

Apache 재시작

~# systemctl restart httpd

이렇게 재시작하고 http로 접속을 해보면 https로 전환되는 것을 확인할 수 있습니다.

SSL 모듈 설치

혹시 Apache에 mod_ssl 가 설치되어 있지 않다면 설치하셔야 합니다.

~# yum -y install mod_ssl
========================================================================
 Package   Arch       Version                 Repository   Size
========================================================================
Installing:
 mod_ssl    x86_64   1:2.4.6-97.el7.centos   updates    114 k

Transaction Summary
========================================================================
Install  1 Package

Total download size: 114 k
Installed size: 224 k

Downloading packages:
mod_ssl-2.4.6-97.el7.centos.x86_64.rpm                    | 114 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:mod_ssl-2.4.6-97.el7.centos.x86_64        1/1
  Verifying  : 1:mod_ssl-2.4.6-97.el7.centos.x86_64        1/1

Installed:
  mod_ssl.x86_64 1:2.4.6-97.el7.centos

Complete!

참고 URL

  1. http 접속 시에 https로 강제 리다이렉트 시키는 방법 - Apache/Rocky Linux
  2. http 접속 시에 https로 강제 리다이렉트 시키는 방법 - Apache/Ubuntu
Tags: apache centos