-
HTTP/HTTPS 상호 전환 리다이렉트(redirect) PHP방법과 서버 .conf 방법스킬/개인서버 2023. 6. 7. 02:33728x90반응형
HOXY 이 방법으로 http://내도메인 -> https://내도메인 리다이렉트 시켰을 때 SSL인증이 된다고 여기시면 안됩니다.
SSL인증은 유료 인증서 또는 무료인 Lets encrypt 를 이용하여 인증서를 서버에 설치하고 도메인과 연결하세요~
이 방법은 인증서가 설치된 서버의 도메인으로 인터넷창을 통해 접속 했을 때 http://도메인 을 잘못 타이핑 해도 https://도메인 으로 잘 연결되도록 도움을 주기 위한 방법입니다.
역으로 인증서가 설치되지 않은 서버의 도메인(http://도메인)을 접속 할 때 의도치 않게 https://도메인으로 타이핑 되어 접속 할 때 아래와 같은 무시무시한 경고문을 보여주지 않기 위해서입니다.
HTTP -> HTTPS 리다이렉트 방법
-아파치 서버 .conf 에서 리다이렉트 방법
↘↘↘↘↘↘↘↘↘↘↘↘↘ 더 보기 클릭
더보기1.아파치가 설치된 폴더에서 httpd-vhosts.conf 파일을 찾아서 편집기로 열어주세요. (아파치설치폴더\apache2\conf\extra\httpd-vhosts.conf) 2.아래와 같이 상황에 맞춰 코드를 추가합니다. 2-1.상황1: 1개의 서버에 1개의 도메인만 운영중인 경우 아래의 코드를 그대로 httpd-vhosts.conf 최하단에 넣어주세요. <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L] </IfModule> 2-2 상황2 : 1개의 서버에 여러개의 도메인(홈페이지)을 운영중이라면 아래처럼 가상호스트 선언 블럭마다 "#HTTP -> HTTPS 리다이렉트" 문구 아래의 2줄을 가상호스트 선언 코드에 끼어 넣으세요. RewriteEngine on RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] 아래는 예시입니다. <VirtualHost *:80> ServerName 내도메인.kr ServerAlias www.내도메인.kr DocumentRoot "C:/Bitnami/wampstack-8.1.10-0/apache2/htdocs/내도메인홈페이지폴더" ErrorLog "logs/내도메인이름-error.log" CustomLog "logs/내도메인이름-access.log" common #HTTP -> HTTPS 리다이렉트 RewriteEngine on RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] </VirtualHost> 🛑 .conf 파일을 수정 완료하고 나면 꼭 아파치 서버를 재시작 해주셔야 올바르게 적용됩니다! 🛑
-php 문서로 리다이렉트 방법
↘↘↘↘↘↘↘↘↘↘↘↘↘ 더 보기 클릭
더보기1.아래의 코드를 php 문서로 만들어주세요. <?php /* HTTP 접속 시 HTTPS로 리다이렉트 */ if(!isset($_SERVER["HTTPS"])) { header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"], true, 301); exit; } ?> 2.코드를 만든 php문서를 index 파일에서 항상 빨아오도록 include 해주세요. 저는 위 코드를 "_head.php"라는 파일로 만들었고 index 파일에서 아래와 같이 빨아옵니다. <?php include "./conf/_head.php"; ?> <!DOCTYPE html> <html> <head> ~~~~여러분의 웹사이트 내용~~~~
이제 역으로 HTTPS -> HTTP 리다이렉트 방법으로 갈게요~
-아파치 서버 .conf 에서 리다이렉트 방법
↘↘↘↘↘↘↘↘↘↘↘↘↘ 더 보기 클릭
더보기1.아파치가 설치된 폴더에서 httpd-vhosts.conf 파일을 찾아서 편집기로 열어주세요. (아파치설치폴더\apache2\conf\extra\httpd-vhosts.conf) 2.아래와 같이 상황에 맞춰 코드를 추가합니다. 2-1.상황1: 1개의 서버에 1개의 도메인만 운영중인 경우 아래의 코드를 그대로 httpd-vhosts.conf 최하단에 넣어주세요. <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} </IfModule> 2-2 상황2 : 1개의 서버에 여러개의 도메인(홈페이지)을 운영중이라면 아래처럼 "#HTTPS -> HTTP 역 리다이렉트" 문구 아래의 3줄을 가상호스트 선언 코드에 끼어 넣으세요. RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 위에 3줄을 아래처럼 적용하세요. <VirtualHost *:443> ServerName 내도메인 ServerAlias www.내도메인.kr SSLEngine on SSLCertificateFile "C:/Certbot/live/내SSL인증폴더/fullchain.pem" SSLCertificateKeyFile "C:/Certbot/live/내SSL인증폴더/privkey.pem" #HTTPS -> HTTP 역 리다이렉트 RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> 🛑 .conf 파일을 수정 완료하고 나면 꼭 아파치 서버를 재시작 해주셔야 올바르게 적용됩니다! 🛑
-php 문서로 리다이렉트 방법
↘↘↘↘↘↘↘↘↘↘↘↘↘ 더 보기 클릭
더보기안타깝게도 php 파일로 https -> http 강제 리다이렉트 기능은 불가능합니다.😂 유효한 인증서가 설치되지 않은 서버/도메인인데 https로 접속하는 경우 무조건 보안경고가 뜨는게 1순위 프로세스인것 같습니다. 이 부분 해결하신 분이 있다면 댓글로 도움 부탁드립니다!
728x90반응형'스킬 > 개인서버' 카테고리의 다른 글
[아파치 서버] SSL 쉽게 win-acme.exe로 설치하기(Let's Encrypt) (0) 2023.06.08 .ga 도메인 무료 사용자 도메인 회수 조치 (1) 2023.06.07 [서버] http 접속 시 https 로 자동 리다이렉트 (0) 2023.06.04 [Bitnami WAMP]를 이용한 개인 서버 홈페이지 2개 이상 여러개 돌리기 (0) 2023.06.04 LetsEncrypt SSL인증서 갱신 시 오류 (Input the webroot for 도메인.com) (0) 2022.11.11