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