서버 운영/APM 서버 구축

http:// 연결을 https:// 연결로 자동 리디렉션(Redirection)

씨실과 날실 2020. 11. 14. 09:00

 

[관련 게시물]

2020/11/10 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] 가상호스트(VirtualHost) 설정

2020/11/12 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버]자체서명 SSL/TLS 인증서를 이용한 https:// 프로토콜 연결 구축

2020/11/14 - [서버 운영/APM 서버 구축] - http:// 연결을 https:// 연결로 자동 리디렉션(Redirection)

 


 

Ubuntu 20.04 LTS에서 APM 설치

2020/09/14 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - 아파치(Apache2 설치

2020/09/16 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - 마리아DB(MariaDB) 10.3 설치

2020/09/18 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - 마리아DB(MariaDB) 10.5 설치

2020/09/20 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - PHP 7.4 설치

2020/09/22 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - APM 설치 후 방화벽 설정

2020/09/24 - [서버 운영/APM 서버 구축] - MariaDB 10.4 이후의 계정 인증 관련 변화(unix_socket, mysql_native_password 인증 / 계정, 암호 및 전역 권한 정보 저장 테이블 변경 등)

2020/09/26 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 기본 환경 파일 설정 - apache2.conf 기본 설정

2020/09/28 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 기본 환경 파일 설정 - php.ini 기본 설정

 

Ubuntu 20.04에서 설치한 Apache2 서버 주요 설정 파일 원문

2020/09/30 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 목록

2020/10/05 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 원문 - Apache2

2020/10/07 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 원문 - PHP 7.4 - php.ini

Ubuntu 20.04에서 설치한 Apache2 서버 주요 설정 파일 내 지시어 설명

2020/10/09 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] apache2.conf의 기본값에 사용된 지시어 설명

2020/10/11 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] ports.conf 의 기본값에 사용된 지시어 설명

2020/10/13 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] envvars의 기본값에 사용된 지시어 설명

2020/10/15 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] security.conf의 기본값에 사용된 지시어 설명

2020/10/17 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] 000-default.conf의 기본값에 사용된 지시어 설명

2020/10/19 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] default-ssl.conf의 기본값에 사용된 지시어 설명


Ubuntu 20.04에서 phpMyAdmin 설치 및 설정

2021.02.20 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 01 - 저장소 설치

2021.03.15 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 02 - Apache 서버 관리자를 위한수동 설치(버전 5.1.0 기준)

2021.03.17 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 03 - 보안강화 작업

2021.03.19 - [서버 운영/APM 서버 구축] - phpMyAdmin 설치 04 - 웹호스팅 사용자를 위한 수동 설치(버전 5.1.0 기준)

2021.03.21 - [서버 운영/APM 서버 구축] - phpMyAdmin 설치 05 - setup 페이지를 통한 구성 파일 생성

Ubuntu 18.04 LTS에서 APM 설치

2018/11/09 - [서버 운영/APM 서버 구축] - Apache 서버 설치

2018/11/14 - [서버 운영/APM 서버 구축] - MariaDB 설치

2018/11/16 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 1

2018/11/16 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 2 - ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

2018/11/16 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 3

2018/11/19 - [서버 운영/APM 서버 구축] - PHP7 설치

2018/11/21 - [서버 운영/APM 서버 구축] - 서버 환경 파일 수정 - php.ini, apache2.conf

 

Ubuntu 18.04 LTS에서 MariaDB 백업 및 업그레이드

2019/01/15 - [서버 운영/APM 서버 구축] - MariaDB & MySQL 백업과 복원 - Nextcloud 14

2019/06/27 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 (Upgrading from MariaDB 10.3 to MariaDB 10.4)

 

Ubuntu 18.04 LTS에서 PHP 버전 전환

2019/07/05 - [서버 운영/APM 서버 구축] - Apache와 Shell에서 PHP 버전 전환하기(How to Switch between Multiple PHP Version)

 

Ubuntu 18.04 LTS에서 phpmyadmin 설치 및 운용

2018/11/23 - [서버 운영/APM 서버 구축] - phpmyadmin 설치 - APT 패키지 관리자를 통한 설치

2019/06/18 - [서버 운영/APM 서버 구축] - APT 패키지 관리자를 통해 설치한 phpMyAdmin 업그레이드 방법(업그레이드 버전 4.9.0.1)

2019/07/01 - [서버 운영/APM 서버 구축] - phpMyAdmin 수동 설치 01 - 일반 설치

2019/07/03 - [서버 운영/APM 서버 구축] - phpMyAdmin 수동 설치 02 - 심볼릭 링크를 이용한 보안 접속

2019/06/16 - [서버 운영/APM 서버 구축] - phpMyAdmin 4.6.6deb5와 PHP 7.2 간 호환성 문제 해결 - Warning in ./libraries/sql.lib.php#613

 

XAMPP 설치 및 운용

2019/04/20 - [서버 운영/서버 구축 꾸러미] - XAMPP에 대하여(버전 7.1.28 / 7.2.17 / 7.3.4)

2019/04/22 - [서버 운영/서버 구축 꾸러미] - XAMPP for Windows 7.3.4 인스톨러 설치

2019/04/25 - [서버 운영/서버 구축 꾸러미] - XAMPP for Windows 설정

2019/06/03 - [서버 운영/서버 구축 꾸러미] - XAMPP 포터블(portable) 사용법

2019/06/05 - [서버 운영/서버 구축 꾸러미] - XAMPP for Linux 4.3.5 설치 및 사용법

 

서버 운영을 위한 관련 연재글

2018/11/07 - [리눅스/Ubuntu] - 방화벽 설정 - ufw

2018/11/12 - [서버 운영/버추얼박스(VirtualBox)] - 가상머신(Virtualbox) 내 서버 외부접속

2019/01/05 - [미디어위키/미디어위키 설치 및 관리] - 호스트 컴퓨터에서 가상머신 내 미디어위키 접속 및 작업을 위한 버추얼박스 포트포워딩 설정

2019/03/15 - [서버 운영/APM 서버 구축] - PHP 7.3으로의 업그레이드 및 사용 연기 권장 안내 - PHP Notice: compact(): Undefined variable:

http:// 연결을 https:// 연결로 자동 리디렉션(Redirection)

요즘 웹환경은 https 프로토콜을 이용한 보안 접속이 주류를 이루고 있습니다. http://로 접속하더라도 https://로 재접속되도록 설정되어 있는 경우가 많습니다.

설사 웹사이트의 홈페이지(index.html 등 대문 페이지)는 http 프로토콜로 접속이 되더라도 적어도 개인 정보를 서버 측에 전송하는 로그인 페이지나 결제 관련 페이지에서만큼은 https 프로토콜을 통해 접속되도록 구축되어 있는 경우가 대부분입니다.

 

SSL/TLS 인증서 보안 서버 구축의 법적 근거

포트폴리오용 사이트 등 일방적인 정보 전달 기능만을 운영하는 경우를 제외하고 대부분의 웹사이트능 직간접적으로 타인의 개인정보를 다루게 되는데 이런 경우 웹사이트 관리자는 개인정보를 보호할 기술적 장치를 마련하도록 법률과 고시 등으로 강제하고 있습니다.

규제등록카드

규제사무명 : 개인정보의 보호조치

https://www.better.go.kr/ba.rgst.RegulCardSlPopup.laf?smode=view&s_ref_no=0000033932&s_ref_renew_no=00

 

정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행령

(약칭: 정보통신망법 시행령)

[시행 2020. 6. 11.] [대통령령 제30691호, 2020. 5. 19., 일부개정]

 

제15조(개인정보의 보호조치)

④ 법 제28조제1항제4호에 따라 정보통신서비스 제공자등은 개인정보가 안전하게 저장ㆍ전송될 수 있도록 다음 각 호의 보안조치를 하여야 한다.  <개정 2014. 11. 28., 2017. 3. 22.>

3. 정보통신망을 통하여 이용자의 개인정보 및 인증정보를 송신ㆍ수신하는 경우 보안서버 구축 등의 조치

 


 

개인정보의 기술적·관리적 보호조치 기준

[시행 2020. 1. 2.] [방송통신위원회고시 제2019-13호, 2020. 1. 2., 일부개정]

 

제6조(개인정보의 암호화)

③ 정보통신서비스 제공자등은 정보통신망을 통해 이용자의 개인정보 및 인증정보를 송·수신할 때에는 안전한 보안서버 구축 등의 조치를 통해 이를 암호화해야 한다. 보안서버는 다음 각 호 중 하나의 기능을 갖추어야 한다.1. 웹서버에 SSL(Secure Socket Layer) 인증서를 설치하여 전송하는 정보를 암호화하여 송·수신하는 기능

1. 웹서버에 SSL(Secure Socket Layer) 인증서를 설치하여 전송하는 정보를 암호화하여 송·수신하는 기능

2. 웹서버에 암호화 응용프로그램을 설치하여 전송하는 정보를 암호화하여 송·수신하는 기능

 

이와 같은 법률적, 행정규칙적 근거를 바탕으로 방문자의 개인정보를 수집하는 모든 웹사이트 서비스 제공자들은 SSL/TLS 인증서를 이용한 보안 서버를 반드시 구축해야 합니다.

따라서 만약 보안 서버를 구축하지 않은 채 웹사이트를 운영하는 경우 타인의 개인정보를 수집 및 관리하는 한 불법입니다.

이러한 이유로 대부분의 정보통신 사업자들은 고객이 http 프로토콜로 접속하더라도 자동으로 https 프로토콜로 연결하도록 기술적 조치를 하고 있습니다.

 

2020/11/10 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] 가상호스트(VirtualHost) 설정

2020/11/12 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버]자체서명 SSL 인증서를 이용한 https:// 프로토콜 연결 구축

 

 

이 글에서는 위 두 글에서 구축한 웹사이트가 http:// 연결로 접속하더라도 https:// 연결되도록 설정해보도록 하겠습니다.

 


 

rewrite 모듈 활성화

Apache2 서버의 mod_rewrite 모듈은 작성한 규칙을 토대로 URL을 동적으로 Redirect 및 Rewrite 처리를 하는 모듈로, 특정 URL 패턴에 대한 리다이렉트 처리를 할 때 자주 사용됩니다.

 

 

 

study@study-VirtualBox:~$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
study@study-VirtualBox:~$ 

a2enmod 명령을 이용해 모듈을 활성해줍니다.

a2enmod 명령에 대한 자세한 내용은 아래 링크를 참고하시기 바랍니다.

2020/11/12 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버]자체서명 SSL 인증서를 이용한 https:// 프로토콜 연결 구축

 

 

Rewrite 구문 작성

 

study@study-VirtualBox:~$ cd /etc/apache2/sites-available
study@study-VirtualBox:/etc/apache2/sites-available$ sudo nano virtualhost01.net.conf

 

 

 

 

    RewriteEngine On
    RewriteCond % !=on
    RewriteRule ^(.*)$ https://%$1 [R,L]

위 아파치 지시어 구문 해석은 다음과 같습니다.

 

RewriteEngine On

Rewrite 모듈을 사용여부를 설정합니다.

 

RewriteCond % !=on

RewriteRule에 대한 조건문입니다.

위 조건문의 해석은 아래와 같습니다.

 

요청이 https 프로토콜로 들어오지 아니한 경우

 

RewriteRule ^(.*)$ https://%/$1 [R,L]

위 RewriteCond(RewriteRule에 대한 조건문)가 충족되는 경우, 또는 단독으로 이하의 RewriteRule을 적용합니다.

위 RewriteRule의 해석은 다음과 같습니다.

https:// 프로토콜로 리다이렉트합니다.

 

위 지시어에 대한 보다 자세란 설명은 아래 링크를 참고하시기 바랍니다.

https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriteengine

http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond

https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule

http://httpd.apache.org/docs/2.4/expr.html#vars

https://httpd.apache.org/docs/2.4/rewrite/flags.html

https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_r

https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l

 

<VirtualHost *:80>
    # ServerAdmin webmaster@virtualhost01.net
    ServerName virtualhost01.net
    ServerAlias www.virtualhost01.net
    
    RewriteEngine On
    RewriteCond % !=on
    RewriteRule ^(.*)$ https://%$1 [R,L]
    
    DocumentRoot /var/www/html/virtualhost01.net
    DirectoryIndex index.html
    ErrorLog $/virtualhost01.net_error.log
    CustomLog $/virtualhost01.net_access.log combined
</VirtualHost>

 

Root 권한이 있다면 아래 구문으로 대신할 수도 있습니다.

Redirectpermanent / https://virtualhost01.net

 

https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirectpermanent

Redirectpermanent 지시어에 대한 자세한 설명은 위 링크르 참고하시기 바랍니다.

 

구문 검사 후 설정 파일 재로드

study@study-VirtualBox:/etc/apache2/sites-available$ sudo apache2ctl configtest
[sudo] study의 암호: 
Syntax OK
study@study-VirtualBox:/etc/apache2/sites-available$ sudo systemctl reload apache2
study@study-VirtualBox:/etc/apache2/sites-available$ 

이후에 웹브라우저 주소창에 http:// 주소로 접속하더라도 https:// 주소로 재연결되어 접속되는 것을 확인할 수 있으실 겁니다.

 

 


Cafe24 웹호스팅에서 https 자동 리디렉션을 하고자 할 때

아래는 Cafe24 웹호스팅을 받는 경우 권장되는 https로의 자동 리디렉션을 위한 구문입니다.

.htaccess 파일에 아래 구문을 추가해주시면 됩니다.

 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>