스킬/개인서버
HTTP/HTTPS 상호 전환 리다이렉트(redirect) PHP방법과 서버 .conf 방법
GET2
2023. 6. 7. 02:33
728x90
반응형
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
반응형