Ubuntu에서 Certbot을 사용한 SSL 인증서 설정 가이드
이 가이드는 Ubuntu 서버에서 Certbot을 이용하여 SSL 인증서를 설정하는 방법을 단계별로 정리한 것입니다.
1. 사전 요구사항
SSL 인증서를 설정하기 전에 아래 조건을 충족해야 합니다.
- Ubuntu 서버 (root 또는
sudo
권한 필요) - Python 3.6 이상 설치
- Apache2 웹 서버 설치 및 실행 (
sudo apt install apache2
) - 도메인이 서버의 IP 주소로 올바르게 연결되어 있어야 함 (
ping yourdomain.com
으로 확인 가능)
2. Certbot 설치
아래 명령어를 실행하여 Certbot과 필요한 패키지를 설치합니다.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python3-certbot-apache
3. Apache 기본 설정
SSL 및 Rewrite 모듈을 활성화한 후 Apache를 재시작합니다.
sudo a2enmod ssl
sudo a2enmod rewrite
sudo systemctl restart apache2
4. SSL 인증서 발급
단일 도메인에 대해 SSL 인증서 발급
sudo certbot --apache -d yourdomain.com
서브도메인(www 포함)과 함께 인증서 발급
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
발급 과정에서 이메일 입력 및 자동 갱신 여부 등을 묻는 프롬프트가 나타날 수 있습니다.
5. 보안 강화 설정
Apache SSL 설정 파일을 수정하여 보안을 강화할 수 있습니다.
파일 경로:
sudo nano /etc/apache2/sites-available/default-ssl.conf
아래 설정을 추가한 후 저장하세요.
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
설정 적용을 위해 Apache를 재시작합니다.
sudo systemctl restart apache2
6. SSL 인증서 자동 갱신 설정
갱신 테스트
SSL 인증서 자동 갱신이 정상 작동하는지 테스트합니다.
sudo certbot renew --dry-run
자동 갱신을 위한 크론 작업 추가
sudo crontab -e
아래 내용을 추가하여 매일 새벽 3시에 인증서를 갱신하도록 설정합니다.
0 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload apache2"
7. 방화벽 설정
방화벽을 사용 중이라면 Apache의 HTTPS 트래픽을 허용해야 합니다.
sudo ufw allow 'Apache Full'
sudo ufw enable
8. 주요 설정 파일 위치
설정 | 파일 경로 |
---|---|
SSL 인증서 | /etc/letsencrypt/live/yourdomain.com/ |
Apache 설정 | /etc/apache2/sites-available/ |
로그 파일 | /var/log/apache2/error.log |
9. 문제 해결 가이드
1) 도메인 연결 확인
ping yourdomain.com
dig yourdomain.com
2) Apache 설정 검사
sudo apache2ctl configtest
3) 인증서 상태 확인
sudo certbot certificates
4) 로그 파일 확인
sudo tail -f /var/log/letsencrypt/letsencrypt.log
sudo tail -f /var/log/apache2/error.log
10. HTTP → HTTPS 자동 리디렉션 설정
Apache 또는 .htaccess
파일을 수정하여 HTTP 요청을 HTTPS로 자동 리디렉션할 수 있습니다.
.htaccess
파일을 수정하려면 아래 내용을 추가하세요.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
11. 설정 확인
모든 설정이 완료되었으면 브라우저에서 아래 URL에 접속하여 HTTPS가 정상 작동하는지 확인하세요.
https://yourdomain.com
인증서가 올바르게 적용되었다면 브라우저 주소창에 🔒(자물쇠) 아이콘이 표시됩니다.
이제 Ubuntu 서버에서 SSL 인증서를 적용하여 HTTPS 보안을 강화할 수 있습니다. 🚀