모든 시작 가이드 시작하기

HTTP-01 챌린지: 작동 원리와 완료 방법

HTTP-01은 SSL 인증서를 받기 위한 가장 일반적인 ACME 챌린지 유형입니다. 인증 기관이 HTTP 포트 80을 통해 웹 서버에서 특정 파일을 가져와 도메인 관리 여부를 확인합니다. DNS-01보다 간단하지만 와일드카드 인증서에는 사용할 수 없습니다.

작동 원리

  1. Let’s Encrypt토큰(임의 문자열)을 제공합니다
  2. http://yourdomain.com/.well-known/acme-challenge/{token}에 파일을 생성합니다
  3. 파일 내용은 키 인가 — 토큰과 ACME 계정 키 지문의 조합입니다
  4. Let’s Encrypt가 공개 인터넷에서 이 URL을 가져옵니다
  5. 내용이 일치하면 챌린지를 통과하고 인증서가 발급됩니다

GetHTTPS를 사용하면 1단계와 3단계가 자동으로 처리됩니다 — 화면에 표시된 값으로 서버에 파일만 배치하면 됩니다.

챌린지 파일 배치 방법

SSH를 통해 (Linux/Nginx/Apache)

# 디렉토리 생성
mkdir -p /var/www/html/.well-known/acme-challenge/

# GetHTTPS의 정확한 값으로 파일 생성
echo "KEY_AUTHORIZATION_FROM_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS

# 접근 가능한지 확인
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS

cPanel 파일 관리자를 통해

  1. public_html로 이동
  2. .well-known 폴더 생성 → 그 안에 acme-challenge 폴더 생성
  3. 토큰 값을 이름으로 하는 새 파일 생성
  4. 키 인가를 파일 내용으로 붙여넣기
  5. 권한이 644인지 확인 (웹 서버에서 읽기 가능)

FTP를 통해

  1. 사이트 루트에 연결
  2. .well-known/acme-challenge/ 디렉토리 경로 생성
  3. 키 인가가 포함된 토큰 이름의 텍스트 파일 업로드

서버 설정

일부 웹 서버는 .well-known의 파일을 제공하기 위해 설정이 필요합니다:

Nginx

# .well-known이 404를 반환하면 서버 블록에 추가
location /.well-known/acme-challenge/ {
    root /var/www/html;
    allow all;
}

Apache

Apache는 보통 기본적으로 .well-known을 제공합니다. 그렇지 않은 경우:

Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
<Directory "/var/www/html/.well-known/acme-challenge/">
    AllowOverride None
    Options None
    Require all granted
</Directory>

Node.js / Express

app.use('/.well-known/acme-challenge', express.static('challenges'));

요구 사항

  • 도메인이 서버의 공개 IP 주소로 연결되어야 합니다
  • 포트 80이 열려 있어야 합니다 — Let’s Encrypt는 항상 HTTPS가 아닌 HTTP를 통해 검증
  • 응답이 HTTP 200 OK를 반환해야 합니다
  • 교차 도메인 리다이렉트 불가 — 같은 도메인의 HTTP→HTTPS 리다이렉트는 허용
  • 파일이 인증 없이 접근 가능해야 합니다 (Basic Auth나 로그인 벽 없이)

HTTP-01을 사용해야 하는 경우

시나리오HTTP-01?
단일 도메인 인증서✅ 예 — 가장 간단한 옵션
도메인 + www 인증서✅ 예 — 이름당 하나의 챌린지
와일드카드 인증서 (*.example.com)❌ 아니오 — DNS-01 사용
포트 80이 차단됨❌ 아니오 — DNS-01 사용
Cloudflare 프록시 뒤⚠️ 먼저 DNS를 그레이 클라우드로 전환 필요할 수 있음
서버 접근 전혀 없음❌ 아니오 — DNS-01 사용 (DNS 접근만 필요)

HTTP-01 vs DNS-01

HTTP-01DNS-01
수행 작업서버에 파일 배치DNS에 TXT 레코드 추가
필요한 접근웹 서버 파일 시스템도메인 DNS 설정
포트 요구사항포트 80 개방없음
와일드카드 지원
속도즉시 (파일이 접근 가능한 경우)1-15분 (DNS 전파)
CDN 뒤에서 작동⚠️ CDN 우회 필요할 수 있음✅ 항상 작동
추천 용도대부분의 단일 도메인 인증서와일드카드, 서버 접근 없음, CDN 환경

문제 해결

챌린지 파일이 404를 반환

  • 정확한 경로 확인/.well-known/acme-challenge/TOKEN이어야 하며 추가 슬래시 없이
  • 파일 권한 확인 — chmod 644
  • Nginx: 설정이 점 파일을 차단할 수 있음. 위에 표시된 location 블록 추가
  • cPanel: 파일 관리자가 .well-known을 숨길 수 있음 — “숨김 파일 보기” 활성화

파일이 접근 가능한데 챌린지가 실패

  • 네트워크 외부에서 확인: 다른 컴퓨터에서 curl http://yourdomain.com/.well-known/acme-challenge/TOKEN 실행하거나 웹 기반 도구 사용
  • DNS가 다른 서버를 가리킬 수 있음dig +short yourdomain.com이 서버의 IP를 반환하는지 확인
  • Cloudflare 프록시: 검증 중 일시적으로 DNS-only(그레이 클라우드)로 전환

포트 80이 차단됨

일부 호스트나 방화벽이 포트 80을 차단합니다. 옵션:

  1. 포트 80 개방 (검증 동안만이라도 일시적으로)
  2. DNS-01 챌린지로 전환 — 포트 80 불필요
  3. 호스팅 제공자에게 프록시를 통해 .well-known을 허용해달라고 요청

”too many requests” 오류

Let’s Encrypt의 요청 제한에 도달했습니다. 기다린 후 다시 시도하세요. GetHTTPS의 사전 검사는 제출 전에 파일 접근 가능 여부를 확인하여 낭비를 방지합니다.

자주 묻는 질문

인증서를 받은 후 챌린지 파일을 삭제해도 되나요?

네. 파일은 검증 중에만 필요합니다. 인증서가 발급되면 .well-known/acme-challenge/ 디렉토리와 내용을 삭제하세요. 갱신 시 새 파일을 만들게 됩니다.

파일이 HTTPS를 통해 제공되어야 하나요?

아닙니다. Let’s Encrypt는 사이트가 HTTPS를 지원하더라도 항상 **평문 HTTP(포트 80)**를 통해 HTTP-01을 검증합니다. 같은 도메인의 HTTP→HTTPS 리다이렉트는 따라가지만, 초기 요청은 항상 HTTP입니다.

하나의 인증서에 여러 도메인에 대해 HTTP-01을 사용할 수 있나요?

네. 인증서의 각 도메인에 대해 별도의 챌린지 파일이 필요합니다. example.comwww.example.com에 대한 인증서를 받으려면 파일 두 개를 배치합니다 — 도메인당 토큰 하나. GetHTTPS가 순차적으로 처리합니다.

GetHTTPS의 “사전 검사”란 무엇인가요?

Let’s Encrypt에 제출하기 전에 GetHTTPS가 공개 인터넷에서(Google의 DNS-over-HTTPS를 통해) 챌린지 파일에 접근할 수 있는지 확인합니다. 이를 통해 요청 제한 횟수를 소모하기 전에 설정 오류를 잡을 수 있습니다 — 다른 브라우저 기반 도구에는 없는 기능입니다.

관련 기사

시작하기 2026-05-08
무료 SSL 인증서 받는 방법 (단계별 가이드)
5분 만에 Let's Encrypt에서 무료 SSL 인증서를 발급받으세요 - 소프트웨어 설치 불필요, 계정 생성 불필요. 4가지 방법, 두 가지 챌린지 유형, 6개 플랫폼 설치, 문제 해결을 포함하는 완전 가이드입니다.
시작하기 2026-05-08
DNS-01 챌린지: 작동 원리와 완료 방법
DNS-01 검증은 DNS에 TXT 레코드를 추가하여 도메인 소유권을 증명합니다. 와일드카드 인증서에 필수적입니다. Cloudflare, Route 53, GoDaddy, Namecheap 등의 설정 방법을 다룹니다.
시작하기 2026-05-07
무료 와일드카드 SSL 인증서 받는 방법
GetHTTPS를 사용하여 Let's Encrypt에서 무료 와일드카드 SSL 인증서(*.example.com)를 받으세요. DNS-01 챌린지만 필요합니다. Cloudflare, Route 53, GoDaddy, Namecheap DNS 설정을 다룹니다.
브라우저에서 무료 SSL 인증서 받기
설치 불필요, 계정 불필요. 개인키는 항상 기기에 남습니다.
인증서 발급