Jace Docs

Certbot

서버 운영의 필수템, Certbot 사용 매뉴얼을 정리해 드릴게요. Certbot은 Let's Encrypt의 SSL 인증서를 자동으로 발급하고 갱신해 주는 아주 기특한 도구입니다.

가장 대중적인 Ubuntu + Nginx 환경을 기준으로 설명해 드릴게요.


1. Certbot 설치하기

먼저 서버의 패키지 목록을 업데이트하고 Certbot 및 Nginx용 플러그인을 설치합니다.

sudo apt update
sudo apt install certbot python3-certbot-nginx

2. SSL 인증서 발급 및 자동 설정

Certbot의 가장 큰 장점은 Nginx 설정을 알아서 분석하고 SSL을 적용해 준다는 점입니다.

방법 A: 자동 설정 (권장)

인증서 발급은 물론, Nginx 설정 파일(.conf)까지 자동으로 수정해 줍니다.

sudo certbot --nginx -d example.com -d www.example.com
  • -d: 적용할 도메인을 입력합니다.
  • 실행 후 이메일 입력, 약관 동의 절차를 거치면 끝납니다.
  • HTTP를 HTTPS로 자동 리다이렉트할지 물어보는데, 웬만하면 2 (Redirect)를 선택하세요.

방법 B: 인증서만 발급 (수동 설정 선호 시)

설정 파일 건드리는 게 싫다면 인증서 파일만 받을 수도 있습니다.

sudo certbot certonly --nginx -d example.com

3. 설치 경로 확인

발급이 완료되면 인증서 파일들은 다음 경로에 저장됩니다. (직접 설정 시 필요)

  • 인증서 전체 체인: /etc/letsencrypt/live/도메인명/fullchain.pem
  • 개인키: /etc/letsencrypt/live/도메인명/privkey.pem

4. 인증서 자동 갱신 테스트

Let's Encrypt 인증서는 90일 동안만 유효합니다. 하지만 Certbot을 설치하면 보통 자동으로 갱신 스케줄러(cron)가 등록됩니다. 제대로 작동하는지 미리 테스트해 볼 수 있습니다.

sudo certbot renew --dry-run

Tip: 위 명령어를 입력했을 때 에러가 없다면, 앞으로 유효기간 만료 30일 전마다 시스템이 알아서 갱신을 진행합니다.


5. 자주 쓰는 주요 명령어 모음

명령어설명
certbot certificates현재 서버에 설치된 인증서 목록과 만료일 확인
certbot renew수동으로 모든 인증서 갱신 시도
certbot delete --cert-name 도메인명특정 도메인의 인증서 삭제

⚠️ 주의사항

  1. 80번 포트 개방: 인증 과정에서 Let's Encrypt 서버가 내 서버에 접속해야 하므로, 방화벽에서 80(HTTP)과 443(HTTPS) 포트가 열려 있어야 합니다.
  2. 도메인 연결: 당연히 해당 도메인이 현재 서버의 IP를 가리키고 있어야 인증이 성공합니다.

혹시 Nginx가 아닌 Apache를 쓰시거나, Docker 환경에서 세팅이 필요하신가요? 상황을 말씀해 주시면 그에 맞춰 가이드를 다듬어 드릴 수 있습니다!

On this page