Let's Encrypt 레이트 리밋
Let's Encrypt 레이트 리밋 (Rate Limits)
Let's Encrypt는 최대한 많은 사람이 공정하게 쓰도록 **레이트 리밋(rate limit)**을 둬요. 대부분의 사용자에겐 기본값으로 충분히 높게 설계되었고, 인증서 갱신은 거의 리밋에 걸리지 않게 만들어졌어요. 테스트 중이라면 프로덕션 대신 스테이징 환경을 쓰는 걸 권장해요.
리밋은 요청마다 토큰 버킷(token bucket) 알고리즘으로 계산돼요. 한 번에 꽉 찬 한도만큼 몰아서 요청하거나, 여유 있게 나눠 보내거나 — 유연하게 쓸 수 있어요. 리밋에 걸렸다고 임시로 초기화하는 방법은 없지만, 시간이 지나면 용량이 점차 다시 차요. 인증서를 폐기(revoke)해도 리밋은 초기화되지 않아요 — 이미 그 인증서 발급에 쓴 리소스가 소비됐기 때문이에요.
주요 발급 관련 리밋을 보면,
- 계정당 신규 오더(New Orders): 계정 하나가 3시간마다 최대 300개. 인증서 하나엔 프로필에 따라 최대 100개의 식별자(DNS/IP)를 담을 수 있어요.
- 등록 도메인당 신규 인증서: 등록 도메인(예:
www.example.com의example.com)당 7일마다 최대 50개. 전역 리밋이라 어느 계정이 요청해도 집계돼요. - 식별자 정확한 집합당 신규 인증서: 완전히 같은 식별자 집합에 대해 7일마다 최대 5개. 클라이언트를 반복 재설치하거나 배포 때마다 설정을 지우면 이 리밋에 걸리기 쉬워요.
또 식별자당 인증 실패 리밋(계정당 시간당 5회)과 연속 실패 리밋(식별자당 1,152회, 성공 시 0으로 리셋)도 있어요. 검증 실패는 대부분 방화벽·네트워크(HTTP-01/TLS-ALPN-01)나 DNS 설정 오타(DNS-01)에서 발생해요.
엔드포인트별로 IP당 초당 요청 리밋도 있어요(예: /acme/new-order 300 requests/s). 초과하면 503 Service Unavailable과 Retry-After 헤더가 응답에 포함돼요. 리밋 에러 메시지는 정해진 형식을 따르며, 여러 리밋에 걸렸다면 가장 나중에 초기화되는 리밋 기준으로 안내해 줘요.
갱신 면제도 있어요. ACME Renewal Info(ARI)로 조정된 갱신은 모든 리밋에서 면제돼요. ARI 미지원 클라이언트라도, 이전 인증서와 "정확히 같은 식별자 집합(대소문자·순서 무시)"이면 renewal로 간주돼 일부 리밋에서 면제돼요. 대형 호스팅 제공자라면 리밋 상향 조정 요청 폼을 쓸 수 있어요(처리엔 몇 주 걸려요).
더 알아보기
- 테스트용 높은 리밋: Staging Environment
- 대형 통합을 위한 가이드: Integration Guide