← 가이드

Let's Encrypt 무료 인증서 발급 따라하기 (certbot · acme.sh · IIS)

가장 많이 쓰는 무료 인증서. 리눅스 nginx·apache 는 certbot, 스크립트 하나로 끝내려면 acme.sh, Windows IIS 는 win-acme — 발급부터 자동 갱신까지 순서대로.최종 확인 2026-09-25

한눈에

항목 내용
비용 무료, 가입·결제 없음
유효기간 기본 90일 (선택형: tlsserver 45일, shortlived 약 6.7일)
도메인 확인 HTTP-01(80 포트) · DNS-01(TXT _acme-challenge) · TLS-ALPN-01(443 포트)
와일드카드 DNS-01 로만 가능
상세 프로필 · 검증 방식

발급 한도 — 연습 전에 알아둘 것

공식 한도 문서 기준:

A. certbot — 리눅스 nginx·apache

  1. 도메인이 서버를 가리키는지 확인합니다 — DNS 전파 확인에서 A 레코드 조회. 서버의 80 포트가 인터넷에서 열려 있어야 합니다(HTTP-01).
  2. certbot 설치 — certbot.eff.org 에서 OS 와 웹서버를 고르면 배포판에 맞는 설치 명령이 나옵니다.
  3. 리허설 (인증서는 저장되지 않음):
    sudo certbot certonly --nginx --dry-run -d example.com -d www.example.com
  4. 발급 + 웹서버 설정 반영 (apache 는 --apache):
    sudo certbot --nginx -d example.com -d www.example.com
    웹서버 설정을 직접 관리하려면 webroot 방식:
    sudo certbot certonly --webroot -w /var/www/html -d example.com
  5. 파일 위치 — /etc/letsencrypt/live/example.com/fullchain.pem(서버 인증서 + 중간 인증서), privkey.pem(개인키). nginx 의 ssl_certificate 에는 반드시 fullchain.pem 을 씁니다.
  6. 갱신 점검:
    sudo certbot renew --dry-run
  1. 와일드카드 — DNS-01 수동 방식:
    sudo certbot certonly --manual --preferred-challenges=dns -d example.com -d '*.example.com'
    안내된 TXT 값을 _acme-challenge.example.com 에 추가하고, DNS 전파 확인에서 권한 네임서버 행에 값이 보이면 Enter 를 누릅니다. 수동 방식은 갱신할 때마다 새 TXT 가 필요하므로, 계속 쓰려면 DNS 사업자 API 플러그인으로 자동화합니다.

B. acme.sh — 셸 스크립트 하나로

  1. 설치:
    curl https://get.acme.sh | sh -s email=my@example.com
  2. 기본 발급처를 Let’s Encrypt 로 — acme.sh 의 기본 CA 는 ZeroSSL 입니다:
    acme.sh --set-default-ca --server letsencrypt
  3. 발급 (셋 중 하나):
    acme.sh --issue -d example.com -w /var/www/html                  # webroot
    acme.sh --issue --nginx -d example.com -d www.example.com         # nginx 모드
    acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf    # DNS API (예: Cloudflare)
    연습은 --server letsencrypt_test.
  4. 설치 + 리로드 — 경로는 환경에 맞게:
    acme.sh --install-cert -d example.com \
      --key-file /etc/nginx/ssl/example.com.key \
      --fullchain-file /etc/nginx/ssl/example.com.pem \
      --reloadcmd "systemctl reload nginx"
  5. 설치할 때 자동 갱신 cron 이 등록됩니다 — crontab -l 로 확인하세요.

C. Windows IIS — win-acme

  1. win-acme.com 에서 zip 을 받습니다(64비트 trimmed 판).
  2. 임시 폴더가 아닌 곳에 압축을 풉니다 — 자동 갱신 예약 작업이 이 경로에서 실행됩니다.
  3. 관리자 권한으로 wacs.exe 를 실행합니다.
  4. 메뉴에서 N(기본 설정으로 새 인증서) → 대상 IIS 사이트 바인딩을 고릅니다.
  5. 약관에 동의하고 이메일을 입력하면 HTTP 검증 후 발급되고, IIS 바인딩이 자동으로 생성·교체됩니다.
  6. 작업 스케줄러에 갱신 작업이 생겼는지 확인합니다.

문제가 생기면

출처: Let’s Encrypt 문서 · certbot 문서 · acme.sh · win-acme