Certbot
서버 운영의 필수템, Certbot 사용 매뉴얼을 정리해 드릴게요. Certbot은 Let's Encrypt의 SSL 인증서를 자동으로 발급하고 갱신해 주는 아주 기특한 도구입니다.
가장 대중적인 Ubuntu + Nginx 환경을 기준으로 설명해 드릴게요.
1. Certbot 설치하기
먼저 서버의 패키지 목록을 업데이트하고 Certbot 및 Nginx용 플러그인을 설치합니다.
sudo apt update
sudo apt install certbot python3-certbot-nginx2. 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.com3. 설치 경로 확인
발급이 완료되면 인증서 파일들은 다음 경로에 저장됩니다. (직접 설정 시 필요)
- 인증서 전체 체인:
/etc/letsencrypt/live/도메인명/fullchain.pem - 개인키:
/etc/letsencrypt/live/도메인명/privkey.pem
4. 인증서 자동 갱신 테스트
Let's Encrypt 인증서는 90일 동안만 유효합니다. 하지만 Certbot을 설치하면 보통 자동으로 갱신 스케줄러(cron)가 등록됩니다. 제대로 작동하는지 미리 테스트해 볼 수 있습니다.
sudo certbot renew --dry-runTip: 위 명령어를 입력했을 때 에러가 없다면, 앞으로 유효기간 만료 30일 전마다 시스템이 알아서 갱신을 진행합니다.
5. 자주 쓰는 주요 명령어 모음
| 명령어 | 설명 |
|---|---|
certbot certificates | 현재 서버에 설치된 인증서 목록과 만료일 확인 |
certbot renew | 수동으로 모든 인증서 갱신 시도 |
certbot delete --cert-name 도메인명 | 특정 도메인의 인증서 삭제 |
⚠️ 주의사항
- 80번 포트 개방: 인증 과정에서 Let's Encrypt 서버가 내 서버에 접속해야 하므로, 방화벽에서 80(HTTP)과 443(HTTPS) 포트가 열려 있어야 합니다.
- 도메인 연결: 당연히 해당 도메인이 현재 서버의 IP를 가리키고 있어야 인증이 성공합니다.
혹시 Nginx가 아닌 Apache를 쓰시거나, Docker 환경에서 세팅이 필요하신가요? 상황을 말씀해 주시면 그에 맞춰 가이드를 다듬어 드릴 수 있습니다!