Let’s Encrypt 인증서의 유효 기간은 90일입니다. 안전 여유를 위해 60일째에 갱신해야 합니다. GetHTTPS(수동)와 Certbot(자동)으로 갱신하는 방법은 다음과 같습니다.
방법 1: GetHTTPS로 갱신 (수동)
원본 인증서를 받을 때와 동일한 단계를 반복합니다:
- gethttps.com/app/setup으로 이동
- 동일한 도메인 입력
- HTTP-01 또는 DNS-01 챌린지 완료 (이전과 동일)
- 새 인증서 파일 다운로드
- 서버의 이전 파일 교체:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem sudo systemctl reload nginx # 또는 apache2/httpd
소요 시간: 한 번 해봤다면 2-3분.
적합한 경우: Certbot을 설치할 서버 접근이 없거나, 소수의 도메인을 관리하거나, 소프트웨어 설치를 원하지 않는 경우.
방법 2: Certbot으로 자동 갱신
서버에 Certbot이 설치되어 있으면 갱신이 자동으로 이루어집니다:
# 자동 갱신이 설정되어 있는지 확인
sudo systemctl list-timers | grep certbot
# 테스트를 위한 수동 드라이 런
sudo certbot renew --dry-run
# 지금 강제 갱신
sudo certbot renew
Certbot의 systemd 타이머(또는 cron 작업)는 하루에 두 번 실행되며 만료 30일 이내의 인증서를 갱신합니다.
적합한 경우: 서버에 root 접근이 있고 무접촉 갱신을 원하는 경우.
인증서 만료 시점 확인
# 서버에서 확인
openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem
# 원격으로 확인
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
출력 예시: notAfter=Aug 5 12:00:00 2026 GMT
알림 설정
- 0일째: 인증서 발급 (90일 유효)
- 60일째: 갱신 (권장 — 30일 안전 여유)
- 90일째: 인증서 만료 — 사이트에 보안 경고 표시
60일째에 캘린더 알림을 설정하세요. 여러 도메인을 관리하는 경우 모니터링 서비스를 사용하여 임박한 만료에 대한 알림을 받으세요.
단계별: GetHTTPS로 갱신
수동 갱신의 정확한 과정은 다음과 같습니다:
-
현재 만료일 확인 (선택이지만 좋은 습관):
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate -
원본 인증서와 동일한 도메인 입력
-
챌린지 완료 — 처음과 동일:
- HTTP-01: 서버에 새 토큰 파일 배치
- DNS-01: 새 값으로
_acme-challengeTXT 레코드 업데이트
-
새 인증서 파일 다운로드
-
서버에서 교체:
sudo cp fullchain.pem /etc/ssl/gethttps/fullchain.pem sudo cp privkey.pem /etc/ssl/gethttps/privkey.pem -
웹 서버 리로드 (재시작이 아닌 리로드 — 기존 연결을 끊지 않고 새 파일 적용):
sudo systemctl reload nginx # Nginx sudo systemctl reload apache2 # Apache/Debian sudo systemctl reload httpd # Apache/CentOS -
새 인증서가 활성화되었는지 확인:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
총 소요 시간: 한 번 해봤다면 2-3분.
갱신 비교: 수동 vs 자동
| GetHTTPS (수동) | Certbot (자동) | |
|---|---|---|
| 갱신당 노력 | 2-3분 | 없음 (cron 작업) |
| 필요한 서버 접근 | 파일 교체만 | 전체 접근 (root) |
| 실패 감지 | 사이트가 깨지면 알아챔 | Certbot 로그 + 실패 시 이메일 발송 가능 |
| 추천 대상 | 1-5개 도메인, root 접근 없음 | 프로덕션 서버, 다수 도메인 |
| 잊을 위험 | 중간 (알림 설정 필요!) | 낮음 (자동화됨) |
root 접근이 있는 프로덕션 서버에는 Certbot 자동 갱신을 설정하세요. root 접근이 없는 환경에서는 GetHTTPS 수동 갱신이 유일한 옵션입니다.
47일의 미래
CA/Browser Forum은 최대 인증서 유효 기간을 점진적으로 줄이기로 결정했습니다:
| 시행일 | 최대 유효 기간 |
|---|---|
| 현재 | 90일 (Let’s Encrypt) |
| 2026년 3월 | 200일 |
| 2027년 3월 | 100일 |
| 2029년 3월 | 47일 |
2029년까지 약 30-35일마다 갱신해야 합니다. 이로 인해 자동 갱신(Certbot)이 점점 더 중요해집니다. 수동 워크플로우(GetHTTPS)의 경우 더 빈번한 알림을 설정하는 것을 고려하세요.
자주 묻는 질문
만료 전에 갱신할 수 있나요?
네. Let’s Encrypt는 언제든지 갱신을 허용합니다. 새 인증서는 새로운 90일 유효 기간으로 시작합니다. 조기 갱신으로 남은 시간을 낭비하지 않습니다 — 단순히 이전 인증서를 교체합니다.
매번 챌린지를 다시 해야 하나요?
네. 각 갱신에는 새로운 도메인 검증 챌린지가 필요합니다. 이것은 보안 기능으로, 여전히 도메인을 관리하고 있는지 확인합니다.
갱신 시 다운타임이 발생하나요?
올바르게 수행하면 아닙니다. 새 파일을 업로드하고 웹 서버를 리로드(재시작이 아닌)합니다. nginx -s reload와 apachectl graceful은 기존 연결을 끊지 않고 새 연결에 새 인증서를 적용합니다.
첫 인증서는 GetHTTPS로, 갱신은 Certbot으로 할 수 있나요?
네. 인증서 파일은 표준 PEM 형식입니다. GetHTTPS로 첫 인증서를 생성한 다음 Certbot을 설치하여 지속적인 자동 갱신을 할 수 있습니다. 충돌하지 않습니다. 상세 비교 →
갱신 기한을 놓치고 인증서가 만료되면?
사이트에 브라우저 보안 경고가 표시되지만 수정은 간단합니다: GetHTTPS에서 새 인증서를 받고, 파일을 교체하고, 서버를 리로드합니다. 5분이면 됩니다. Let’s Encrypt에서 인증서를 만료시킨 것에 대한 페널티는 없습니다 — 그냥 새것을 받으면 됩니다.
갱신 시 같은 키 쌍을 사용해야 하나요?
아닙니다. GetHTTPS는 매번 새 키 쌍을 생성하며, 이는 실제로 더 나은 보안 관행(키 순환)입니다. 서버는 새 인증서가 다른 키를 사용하는지 관여하지 않습니다 — fullchain.pem과 privkey.pem을 함께 교체하면 됩니다.
와일드카드 인증서는 어떻게 갱신하나요?
최초 발급과 동일한 과정입니다: GetHTTPS를 방문하고, *.example.com을 입력하고, DNS에 새 _acme-challenge TXT 레코드를 추가하고, 검증하고, 다운로드합니다. 와일드카드 인증서는 DNS-01이 필수이므로 매번 DNS 접근이 필요합니다.