Ubuntu Apache2 Multi Domain SSL


Ubuntu Apache2 복수 도메인 설정 , SSL 함께

Ubuntu에서 Apache2를 사용하여 복수의 도메인을 설정하고 SSL을 함께 적용하는 방법에 대해 설명드리겠습니다.

1. Apache2 설치 및 기본 설정

먼저, Apache2를 설치하고 기본적인 설정을 해보겠습니다.

Apache2 설치하기

Ubuntu에서 Apache2를 설치합니다.

sudo apt update
sudo apt install apache2

기본 설정 확인하기

Apache2가 제대로 설치되었는지 확인합니다. 웹 브라우저에서 서버의 IP 주소 또는 도메인을 입력하여 Apache2 기본 페이지가 나타나는지 확인합니다.

sudo systemctl status apache2

2. 가상 호스트 설정 (Virtual Hosts)

Apache2에서는 가상 호스트를 설정하여 복수의 도메인을 동시에 호스팅할 수 있습니다. 각 도메인마다 별도의 가상 호스트를 설정하여 관리합니다.

기본 사이트 설정 파일

기본 사이트 설정 파일 /etc/apache2/sites-available/000-default.conf을 확인하고, 필요에 따라 수정합니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ServerName your-domain.com
    ServerAlias www.your-domain.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

가상 호스트 추가 설정 파일

각 도메인별로 별도의 가상 호스트 설정 파일을 생성합니다.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/your-domain.conf
sudo nano /etc/apache2/sites-available/your-domain.conf

your-domain.conf 파일을 열고 다음과 같이 수정합니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your-domain
    ServerName your-domain.com
    ServerAlias www.your-domain.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

위 설정에서 /var/www/your-domain은 각 도메인의 웹 파일이 위치한 경로입니다. 필요에 따라 DocumentRoot를 적절히 변경합니다.

가상 호스트 활성화 및 Apache2 재시작

가상 호스트 설정 파일을 활성화하고 Apache2를 재시작합니다.

sudo a2ensite your-domain.conf
sudo systemctl reload apache2

3. SSL 설정 (HTTPS)

SSL을 적용하여 각 도메인에 HTTPS를 제공할 수 있습니다. Let’s Encrypt를 사용하여 무료 SSL 인증서를 발급받고 설정하는 방법을 설명하겠습니다.

Certbot 설치

Certbot은 Let’s Encrypt에서 제공하는 인증서를 손쉽게 설치하고 관리할 수 있는 도구입니다.

sudo apt install certbot python3-certbot-apache

SSL 인증서 발급 및 설정

Certbot을 사용하여 SSL 인증서를 발급받고 설정합니다.

sudo certbot --apache -d your-domain.com -d www.your-domain.com

위 명령어를 실행하면 Certbot이 자동으로 Apache2와 설정 파일을 수정하여 SSL을 활성화합니다. 발급받은 인증서는 자동으로 갱신됩니다.

SSL 인증서 자동 갱신 설정

Let’s Encrypt SSL 인증서는 90일마다 갱신되어야 합니다. Certbot은 이를 자동으로 처리해 줍니다. 자동 갱신을 위한 Cron 작업을 추가합니다.

sudo crontab -e

Cron 파일에 다음 줄을 추가합니다.

0 0 * * * /usr/bin/certbot renew --quiet

이렇게 하면 매일 자정에 SSL 인증서가 자동으로 갱신됩니다.

4. Apache2 재시작 및 테스트

모든 설정이 완료되면 Apache2를 재시작하고 설정이 올바르게 적용되었는지 테스트합니다.

sudo systemctl restart apache2

웹 브라우저에서 https://your-domain.com 또는 https://www.your-domain.com 으로 접속하여 SSL이 제대로 적용되었는지 확인합니다.

이제 각 도메인마다 별도의 가상 호스트를 설정하고 SSL을 적용하는 방법을 설명드렸습니다. 필요에 따라 추가적인 도메인을 가상 호스트로 설정하여 Apache2 서버를 관리할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *