Ubuntu 환경에서 Certbot(무료 SSL 인증서)을 사용한 Apache SSL 인증서 설정 가이드

SSL 인증서
SSL 인증서
Share

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 보안을 강화할 수 있습니다. 🚀

You may also like...