LEMP 환경에서 Let’s Encrypt 인증서를 설치하고 자동 갱신하는 방법을 알아보겠습니다.
1. Certbot 설치
Let’s Encrypt 인증서를 설치하기 위해 Certbot을 사용합니다. Certbot은 무료 SSL 인증서를 쉽게 얻고 자동으로 갱신할 수 있도록 도와줍니다.
Ubuntu에 Certbot 설치
$ sudo apt update
$ sudo apt install certbot python3-certbot-nginx
2. 인증서 발급
다음으로, Certbot을 사용하여 SSL 인증서를 발급합니다. Nginx와 함께 사용할 것이므로 --nginx
플러그인을 사용합니다.
$ sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
위 명령어에서 yourdomain.com
을 실제 도메인으로 대체하세요. Certbot은 자동으로 Nginx 설정 파일을 업데이트하고 SSL 인증서를 구성합니다.
3. Nginx 설정 확인
Certbot이 Nginx 설정 파일을 수정하므로, 이를 확인해야 합니다. Nginx 설정 파일은 일반적으로 /etc/nginx/sites-available/
또는 /etc/nginx/sites-enabled/
디렉토리에 있습니다.
$ sudo vi /etc/nginx/sites-available/yourdomain.com
파일에서 server
블록 안에 다음과 같은 내용이 포함되어 있는지 확인합니다:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 나머지 설정들...
}
4. 인증서 자동 갱신 설정
list-timers는 시스템 타이머를 확인하고 관리할 수 있는 유틸리티입니다. 주로 시스템 서비스와 타이머의 상태를 확인할 때 사용됩니다. Let’s Encrypt 인증서의 자동 갱신을 설정하는 데 유용할 수 있습니다. 다음은 list-timers를 사용하여 Let’s Encrypt 인증서의 자동 갱신을 설정하고 관리하는 방법입니다.
4.1 Certbot 서비스 및 타이머 설정
Certbot은 자체 타이머 유닛 파일을 포함하고 있습니다. 이를 사용하면 자동 갱신이 가능합니다. 기본적으로 설치 시 활성화되지만, 확인하고 필요시 활성화하는 방법을 알아봅니다.
Certbot 타이머 활성화
$ sudo systemctl enable certbot.timer
$ sudo systemctl start certbot.timer
4.2 타이머 확인
list-timers
명령어를 사용하여 활성화된 타이머를 확인할 수 있습니다.
$ systemctl list-timers
이 명령어를 실행하면 현재 활성화된 모든 타이머의 목록이 표시됩니다. 출력 결과에는 다음과 같은 정보가 포함됩니다:
- NEXT: 다음 실행 시간
- LEFT: 남은 시간
- LAST: 마지막 실행 시간
- PASSED: 마지막 실행 후 경과 시간
- UNIT: 타이머 유닛 이름
- ACTIVATES: 타이머가 활성화하는 서비스 유닛 이름
Certbot 타이머가 제대로 설정되었다면, certbot.timer
가 목록에 표시됩니다.
4.3 Certbot 타이머 상태 확인
list-timers
를 사용해 Certbot 타이머를 확인할 수 있지만, 개별 타이머의 상태를 더 자세히 확인하려면 다음 명령어를 사용할 수 있습니다.
$ sudo systemctl status certbot.timer
이 명령어는 Certbot 타이머의 현재 상태와 최근 로그를 보여줍니다.
4.4 타이머 설정 변경
기본 설정으로 충분하지 않은 경우, 타이머 설정을 변경할 수 있습니다. 예를 들어, 인증서를 더 자주 갱신하고 싶다면 다음 파일을 편집합니다:
$ sudo vi /lib/systemd/system/certbot.timer
타이머 유닛 파일은 다음과 비슷하게 생겼습니다:
[Unit]
Description=Run certbot twice daily
[Timer]
OnCalendar=*-*-* 00,12:00:00
Persistent=true
[Install]
WantedBy=timers.target
OnCalendar
값을 변경하여 갱신 주기를 조정할 수 있습니다. 예를 들어, 매일 오전 3시에 갱신하려면 OnCalendar=*-*-* 03:00:00
으로 변경합니다.
변경 후, 시스템 데몬을 다시 로드하고 타이머를 다시 시작합니다:
$ sudo systemctl daemon-reload
$ sudo systemctl restart certbot.timer
4.5 수동 갱신 테스트
타이머가 제대로 작동하는지 확인하기 위해 수동으로 갱신을 테스트할 수 있습니다:
$ sudo certbot renew --dry-run
이 명령어는 실제로 인증서를 갱신하지 않고 갱신 프로세스를 시뮬레이션합니다.
결론
이제 list-timers
명령어를 사용하여 Let’s Encrypt 인증서의 자동 갱신을 설정하고 관리하는 방법을 익혔습니다. 시스템 타이머를 통해 Certbot을 효과적으로 관리함으로써 SSL 인증서 갱신을 자동화할 수 있습니다. 이를 통해 웹사이트의 보안을 강화하고 관리의 번거로움을 줄일 수 있습니다. 자, 이제 여러분의 사이트가 항상 최신의 SSL 인증서로 보호되는 것을 확인해보세요!