apache 설치 후 Let’s Encrypt 무료SSL/TLS 인증서 설치

Let’s Encrypt는 무료, 자동, 공개 SSL/TLS 인증서를 제공하는 서비스이며, Certbot은 이 인증서의 발급 및 갱신 과정을 자동화해주는 도구다.

1. Certbot PPA 추가 및 업데이트

Certbot의 최신 버전을 사용하기 위해 PPA(Personal Package Archive)를 추가하는 것이 좋습니다.

bash

sudo add-apt-repository ppa:certbot/certbot
sudo apt update

2. Certbot 및 Apache 플러그인 설치

이제 Certbot과 Apache와의 연동을 위한 플러그인을 설치합니다.

bash

sudo apt install certbot python3-certbot-apache -y

python3-certbot-apache 패키지는 Certbot이 Apache 서버 구성을 자동으로 조정할 수 있도록 도와줍니다.  

3. Apache 가상 호스트(Virtual Host) 설정 확인

Certbot이 올바르게 작동하려면, Apache 가상 호스트 설정 파일(*.conf 파일, 일반적으로 /etc/apache2/sites-available/)에 웹사이트의 ServerName 또는 ServerAlias 지시어가 올바르게 설정되어 있어야 합니다. 이 지시어는 Certbot이 인증서를 발급받을 도메인 이름을 식별하는 데 사용됩니다.

예시 (/etc/apache2/sites-available/your-domain.conf):

apache

<VirtualHost *:80>
    ServerAdmin webmaster@your-domain.com
    ServerName your-domain.com      # 실제 도메인으로 변경해주세요.
    ServerAlias www.your-domain.com # 실제 도메인으로 변경해주세요.
    DocumentRoot /var/www/html/your-domain # 실제 웹사이트 경로로 변경해주세요.
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

위 설정은 HTTPS를 적용할 도메인(예: your-domain.com)과 www.your-domain.com을 ServerName과 ServerAlias에 명시한 예시입니다.  Certbot 실행 전에 Apache 설정을 확인하시고, 변경사항이 있다면 Apache를 재시작해주세요.

bash

sudo systemctl restart apache2

4. SSL 인증서 발급

이제 Certbot을 사용하여 SSL 인증서를 발급받을 수 있습니다.

bash

sudo certbot --apache

이 명령어를 실행하면 Certbot이 Apache 설정을 분석하고 다음과 같은 질문을 할 것입니다:

  • 이메일 주소 입력: 만료 알림 및 보안 관련 통지를 받을 이메일 주소를 입력합니다.
  • 약관 동의: Let’s Encrypt 서비스 약관에 동의합니다.
  • 도메인 선택: Certbot이 Apache 설정에서 찾은 도메인 목록이 표시됩니다. 이메일 주소 및 약관에 동의하면 목록이 나오는데, 인증서를 적용할 도메인을 선택하거나 모두 적용하려면 Enter를 누릅니다.
  • HTTP 리디렉션 설정: 웹사이트로의 HTTP(80) 접근을 HTTPS(443)로 자동 리디렉션할지 물어봅니다. ‘2: Redirect’를 선택하여 항상 HTTPS로 접속하도록 설정하는 것이 좋습니다.

성공적으로 완료되면, Certbot은 Apache 설정을 자동으로 업데이트하고 인증서를 설치했다는 메시지를 보여줄 것입니다.  

5. SSL 설치 확인

웹 브라우저를 열고 https://your-domain.com (실제 도메인 주소로 변경)으로 접속해 보세요. 주소창에 자물쇠 아이콘이 나타나고, 웹사이트가 HTTPS로 안전하게 연결되었음을 확인할 수 있습니다.

6. 자동 갱신 설정

Let’s Encrypt 인증서는 90일마다 갱신해야 합니다. Certbot은 이 갱신 과정을 자동으로 처리해주는 cron 작업이나 systemd 타이머를 자동으로 설정합니다.

갱신 프로세스가 올바르게 작동하는지 테스트하려면 다음 명령어를 실행할 수 있습니다:

bash

sudo certbot renew --dry-run

이 명령어는 실제 갱신 없이 갱신 프로세스를 시뮬레이션합니다. 오류 없이 성공하면 자동 갱신이 올바르게 설정된 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!