리눅스 서버 구축

리눅스 핵심 네트워크 서버 - Apache 설치 및 SSL 인증서 자동 설정 실습

ahhyun98 2025. 5. 27. 17:01

 

이번 실습에서는 리눅스 환경에서 가장 널리 쓰이는 웹 서버Apache(아파치)를 설치하고, 가상 호스트 설정 및 SSL 인증서 적용(Cerbot)자동화 스크립트와 함께 구성하였다. HTTPS 기반의 안전한 웹 서비스 환경을 만들기 위한 핵심 단계였다.


1. Apache란?

Apache HTTP Server오픈소스 기반의 웹 서버 소프트웨어로, 전 세계에서 가장 많이 사용되고 있다.

  • 다양한 운영체제 지원 : Linux, Unix, Windows 등
  • 정적 웹 서버로도 활용 가능하고, PHP나 MySQL 연동을 통해 동적 웹 서버로 확장 가능.
  • 설정이 유연하고 커스터마이징이 쉬움. 

2. Apache 설치

apt update
apt install apache2

 

설치 후 서비스 상태 확인 및 시작:

systemctl start apache2
systemctl enable apache2  # 부팅 시 자동 시작

 

웹 브라우저에서 http://서버 IP로 접속하면 기본 Apache 인덱스 페이지가 출력됨. 


3. Apache 주요 설정 파일 구조

위치 설명
/etc/apache2/apache2.conf 전체 기본 설정
/etc/apache2/envvars 환경 변수 설정
/etc/apache2/ports.conf 리스닝 포트 지정(기본 80)
/etc/apache2/sites-available/ 가상 호스트 설정 파일 위치
/etc/apache2/sites-enabled/ 활성화된 가상 호스트 링크
/etc/apache2/mods-enabled/ 활성화된 모듈 목록

4. 가상 호스트 설정

Apache하나의 웹 서버에서 여러 도메인이나 서비스를 분리하여 운영할 수 있도록 가상 호스트(VirtualHost) 기능을 제공한다.

 

설정 예시

<VirtualHost *:80>
    ServerAdmin webmaster@ahhyun.me
    ServerName ahhyun.me
    ServerAlias www.ahhyun.me
    DocumentRoot /var/www/ahhyun.me
</VirtualHost>

 


5. 여러 포트에서 리스닝 가능

Apache는 기본적으로 80 포트를 사용하지만, /etc/apache2/ports.conf 파일을 수정하면 여러 포트(8080,8888 등)에서 동시에 서비스가 가능하다.


6. Certbot을 활용한 SSL 인증서 설치

Let's Encrypt의 무료 인증서를 발급받고 Apache에 적용할 수 있다. 

 

설치 및 실행

apt install certbot python3-certbot-apache
certbot --apache

 

=> 이메일과 도메인 입력 후 자동으로 인증서 설치 및 default-ssl.conf 수정


7. 자동화 스크립트로 Apache + SSL 설정

#!/bin/bash

apt update
apt install apache2 ufw -y

systemctl enable apache2
systemctl start apache2

# Certbot 설치 및 인증서 발급
apt install certbot python3-certbot-apache -y
certbot --apache

# 기본 SSL 설정 파일 백업 및 수정
cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

# ServerName과 DocumentRoot 수정
sed 's|ServerAdmin webmaster@localhost|ServerAdmin webmaster@localhost\nServerName ahhyun.me|' -i /etc/apache2/sites-available/default-ssl.conf
sed 's|DocumentRoot /var/www/html|DocumentRoot /var/www/ahhyun.me|' -i /etc/apache2/sites-available/default-ssl.conf

# SSL 모듈과 사이트 활성화
a2enmod ssl
a2ensite default-ssl.conf

# Apache 재시작
service apache2 restart

 

기능

  • Apache 설치 및 시작
  • Cerbot 인증서 자동 발급 및 적용
  • SSL 가상 호스트 설정 수정
  • 포트 허용 및 방화벽 구성
  • HTTPS 완전 자동 설정 완료

8. 마무리

이번 실습에서는 Apache 웹 서버 설치부터 HTTPS 적용까지 웹 서비스 설정 흐름 전체를 경험할 수 있었다. 

특히, SSL 인증서를 자동으로 설정하는 스크립트를 통해 효율성 있게 웹 서버를 관리하는 방법도 배울 수 있었다. 

 

 

 

 

이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.

모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.