Let’s Encrypt 인증서 설치 및 자동 갱신 1분만에 설정하기

LEMP 환경에서 Let’s Encrypt 인증서를 설치하고 자동 갱신하는 방법을 알아보겠습니다.

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 인증서로 보호되는 것을 확인해보세요!

Leave a Comment