리눅스
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/브라우저 정상 |