리눅스

Ubuntu(20.04) WEB 서버 및 HTTPS 구성(with PNetLab 실습)

CBROJIN 2025. 5. 30. 10:43

🧩 전체 토폴로지

 

🧩 WEB 서버 실습 구성 개요

목표:  Client PC가 DNS,WEB 서버(Apache2)를 통해 HTTP 접속 가능하도록 구성

 

서버 정보:

  • DNS 서버 IP: 192.168.50.3 (ens4)
  • 웹 서버 IP: 192.168.50.4 (ens4)
  • 도메인 이름: network.local

 

Step 1. Apache2 설치

sudo apt update                         # 패키지 목록 최신화
sudo apt install apache2 -y             # Apache2 웹서버 설치 (-y는 자동 yes)

Step 2. Apache2 서비스 상태 확인 및 부팅 시 자동 시작

sudo systemctl status apache2           # 웹서버 동작 상태 확인 (active (running))
sudo systemctl enable apache2           # 재부팅 시 자동 실행 등록

Step 3. www.network.local HTML 파일 작성

sudo nano /var/www/html/index.html

 

Step 4. 내부에서 curl로 확인 (웹 서버 자체 테스트)

curl http://localhost/index.html
curl http://192.168.50.4/index.html

# 구성한 내용이 출력 되면 성공입니다.

 

Step 5. 실제 Windows PC (Pre-share에 매핑된) 또는 클라이언트 브라우저 접속

 

브라우저 주소창에 입력:

http://www.network.local

 

성공!

 

 

부록: Windows에서 접속이 안 될 경우 hosts 등록 방법

C:\Windows\System32\drivers\etc\hosts

해당 파일 마지막 줄에 다음 내용 추가:

192.168.50.4    www.network.local

 

 


 

 

🧩  HTTPS(Open SSL 기반)  실습 구성 개요

  • 목표: 내부 DNS 서비스 + Apache2 외부 접속 HTTPS 구성
역할 구성 요소IP
DNS 서버 192.168.50.3 (ens4)
WEB 서버 192.168.50.4 (ens4)
도메인 www.network.local

 

Step 1. SSL 파일 디렉토리 생성 + 개인 키 생성

sudo mkdir -p /etc/apache2/ssl # 인증서, 키 저장용 디렉토리 생성
sudo openssl genrsa -out /etc/apache2/ssl/server.key 2048 # RSA 2048bit 키 생성

Step 2. CSR (인증서 요청서) 생성

sudo openssl req -new -key /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.csr
  • server.csr: 인증서에 포함될 정보(도메인명 등)를 포함해 CA에 서명 요청하는 파일

Step 3. 자체 서명인증서 (CRT) 생성

sudo openssl x509 -req -days 365 \
-in /etc/apache2/ssl/server.csr \
-signkey /etc/apache2/ssl/server.key \
-out /etc/apache2/ssl/server.crt
  • server.crt: 최종적으로 Apache에 적용할 인증서 파일 (유효기간 365일)

🧩 보안 인증서 구조 요약

  • /etc/apache2/ssl/server.key: 서버의 개인 비밀 키 (절대 외부 공개 금지)
  • /etc/apache2/ssl/server.csr: 인증서 요청 파일 (CA 제출용)
  • /etc/apache2/ssl/server.crt: 자체 서명된 인증서 (Apache 적용)

Step 4. Apache2 SSL 설정 파일 수정

sudo nano /etc/apache2/sites-available/default-ssl.conf

 

sudo a2enmod ssl # Apache2의 SSL 기능 활성화
sudo a2ensite default-ssl.conf # SSL 설정 활성화

Step 5. Apache2 재시작

sudo systemctl restart apache2

Step 7. 내부에서 curl로 확인 (웹 서버 자체 테스트)

curl -k https://localhost/index.html           # 서버 내부에서 HTTPS 동작 확인
curl -k https://192.168.50.4/index.html        # IP 기준 확인
  • -k: 자체 서명인증서 검증 무시

Step 8. 실제 Windows PC (Pre-share에 매핑된) 또는 클라이언트 브라우저 접속

 

브라우저 주소창에 입력:

https://www.network.local

 

성공!

 


결과 요약

테스트 결과
Apache2 페이지 ✅ index.html 정상 발송
HTTPS ✅ OpenSSL + Apache2 연동, curl/브라우저 정상