
DV 인증서만 발급(OV/EV 미발급).
와일드카드: *.example.com은 DNS-01 챌린지로만 가능.
키 타입: RSA(일반적), ECDSA도 가능(경량/성능 유리).
주요 레이트 리밋(대표적 예)
- 등록 도메인당 주당 인증서 50개
- 동일한 SAN 세트 중복 인증서 주당 5개
- 검증 실패: 호스트명·계정 기준 시간당 5회
- Pending Authorizations: 계정당 300개 내외 (운영 전 Staging 환경으로 리밋/실패 리스크 줄이는 게 정석)
기본 루트는 ISRG Root X1 체인을 사용(현대 브라우저/OS 대부분 신뢰).
서버는 OCSP Stapling 권장(상태검사 성능/프라이버시 개선).
sudo apt update
# Nginx 연동 예시
sudo apt install -y certbot python3-certbot-nginx
# Apache면 python3-certbot-apache
# Nginx 설정을 자동 수정 + 인증서 자동 발급/설치
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot certonly --webroot \
-w /var/www/html \
-d example.com -d www.example.com
# 발급 후 nginx.conf에서 /etc/letsencrypt/live/<도메인>/ 경로를 수동 설정
# 예: Cloudflare DNS 플러그인
sudo apt install -y python3-certbot-dns-cloudflare
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
-d example.com -d '*.example.com'
/etc/letsencrypt/
live/<도메인>/ # 실제 웹서버가 참고할 심볼릭 링크
fullchain.pem # 서버 인증서 + 체인
privkey.pem # 개인키(권한 600/소유 root)
archive/<도메인>/ # 과거 버전까지 저장
renewal/<도메인>.conf # 갱신 설정
/var/log/letsencrypt/ # 발급/갱신 로그
sudo certbot renew --dry-run # 리허설
sudo systemctl list-timers | grep certbot
sudo certbot renew --deploy-hook "systemctl reload nginx"
# Docker 환경이면:
sudo certbot renew --deploy-hook "docker compose exec nginx nginx -s reload"
sudo certbot certificates # 보유 인증서 목록
sudo certbot revoke --cert-name example.com # 인증서 폐기
sudo certbot delete --cert-name example.com # 로컬 삭제
# ECDSA 키로 발급(가벼움/성능 Good)
sudo certbot --nginx --key-type ecdsa --elliptic-curve secp384r1 -d example.com
# Staging(리밋/실패 부담↓)에서 테스트
sudo certbot --nginx --staging -d example.com
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run
sudo sed -i 's|^renew_hook =.*$||' /etc/letsencrypt/renewal/*.conf 2>/dev/null
sudo certbot renew --deploy-hook "systemctl reload nginx"