project

bank 대응 프로젝트 ( HTTPS 리다이렉션)

law and security 2024. 12. 9. 14:57

 

< megabank.store 웹사이트에 Let's Encrypt를 이용해 HTTPS를 설정>

 

: https://megabank.store 로 접근할 수 있도록 구성

 

 

1. 환경 준비 

 

시스템 요구사항
  1. OS: Ubuntu 기반 (24.04 또는 14.04 이상)
  2. 웹 서버: Apache 2.4.58 (이미 설치된 상태)
  3. 도메인: megabank.store가 이미 DNS 설정 완료 상태

 
 

 

 

sudo apt update

#add-apt-repository 명령어를 사용하려면 software-properties-common 패키지가 필요
sudo apt install software-properties-common

#최신 버전의 Certbot을 설치
sudo add-apt-repository ppa:certbot/certbot

sudo apt update

#Certbot이 Apache 서버와 통합되어 SSL 인증서를 자동으로 설치하고 갱신
sudo apt install python3-certbot-apache

 
 

 
=> python3-cerbot-apache 및 관련 의존 패키지가 성공적으로 설치 완료 

 
 

2. SSL 인증서 발급 및 설정

 

#Certbot을 사용하여 Apache 웹 서버에 SSL 인증서를 자동으로 설치하고 설정하는 명령어
sudo certbot --apache

 

  • 이메일 입력 : 관리 이메일 입력 ( 실제 수신할 수 있는 이메일 )
  • 이용약관 동의 : A입력
  • 도메인 선택 : 도메인 입력 (ex. megabank.store)
  • 리다이렉션 설정: HTTPS 리다이렉션 활성화 (2 선택)

 

 

# SSL 모듈 활성화 
sudo a2enmod ssl

# Apache 다시 시작
sudo systemctl restart apache2

 

 
-> SSL 모듈 활성화 

 

3. 방화벽 확인 및 Apache 설정 파일에 ServerName 명시적 추가 

 
 

-> 방화벽 확인 
 

 
-> Apache가 HTTPS를 제대로 수신 상태

 

#Apache 웹 서버의 주 설정 파일인 apache2.conf 수정
sudo nano /etc/apache2/apache2.conf

#파일 하단에 추가 
ServerName megabank.store

 
 

-> 설정 완료 

-> 파일 안에 내용 추가

 
 

[  트러블슈팅? ]

 

 

 
-> 안되는 이유? : 포드포워딩 때문
 

 
 

 

-> 포트포워딩 설정 완료 

 

4. SSL 인증서 재발급

( HTTPS 리디렉션이 처음에 작동하지 않았다. -> Apache 설정 파일에 있는 리디렉션 규칙이 비활성화 되었기 때문)
 
-> Cerbot이 SSL 인증서를 발급할 때, 리디렉션 루프를 방지하기 위해 일부 리디렉션 규칙을 자동으로 비활성화했을 가능성이 있다. 
 
-> SSL 인증서를 재발급 받으면서 Cerbot이 Apache 설정을 다시 업데이트하고, HTTPS 리디렉션 규칙을 재활성화
( SSL 인증서와 리디렉션 설정이 모두 제대로 적용되어 HTTPS로 리디렉션이 정상적으로 작동)
 

 
 

 

1. 시스템 준비 및 패키지 설치

  • 시스템을 최신 상태로 업데이트,  필요한 패키지인 python3-certbot-apache를 설치 완료
  • 이후 certbot을 사용하여 Apache 서버에서 SSL 인증서를 발급받는 설정을 진행

2. SSL 인증서 발급

  • sudo certbot --apache 명령어를 실행하면, Certbot이 자동으로 이메일과 도메인 정보를 입력, megabank.store 도메인에 대해 SSL 인증서를 발급받고 Apache 서버 설정을 변경
  • 인증서 발급이 완료되었고, 인증서의 유효 기간은 2025년 3월 9일까지

3. Apache 설정

  • SSL 모듈을 활성화하기 위해 sudo a2enmod ssl 명령어를 실행했고, 이를 통해 Apache가 HTTPS 연결을 수신 설정
  • sudo systemctl restart apache2 명령어로 Apache 서버를 재시작하여 설정을 적용

4. 방화벽 및 ServerName 설정
  • Apache 설정 파일인 /etc/apache2/apache2.conf 파일을 열어 ServerName megabank.store를 추가하는 작업

 
 
[재발급 할때] 
 
:  이미 인증서가 유효한 상태였기 때문에 certbot은 새로운 인증서를 발급하지 않고, 기존 인증서를 갱신 ( Apache 설정 파일도 자동으로 수정)
 
[SSL 연결확인]
 
: openssl s_client -connect localhost:443 명령어를 사용하여 SSL 인증서가 제대로 설정되었는지 확인한 결과, SSL 핸드셰이크가 정상적으로 완료되었고, 인증서 체인도 올바르게 설정 확인. 
 
=> megabank.store는 HTTPS 연결을 통해 안전하게 접근할 수 있다.