HTTPS 퀵 스타트
출처: Caddy 공식 문서
본문
이 가이드에서는 완전 관리형 HTTPS를 아주 빠르게 시작하는 방법을 보여줘요.
Caddy는 설정에 호스트 이름이 제공되는 한 기본적으로 모든 사이트에 HTTPS를 사용해요. 이 튜토리얼은 공개적으로 신뢰받는 사이트(즉 "localhost"가 아닌)를 HTTPS로 띄우고 싶다고 가정하므로, 공개 도메인 이름과 외부 포트를 사용할 거예요.
사전 준비:
-
기본적인 터미널/명령줄 사용 능력
-
DNS에 대한 기본적인 이해
-
등록된 공개 도메인 이름
-
포트 80과 443에 대한 외부 접근
-
PATH에
caddy와curl이 있어야 해요
이 튜토리얼에서는 example.com을 여러분의 실제 도메인 이름으로 바꿔 주세요.
도메인의 A/AAAA 레코드가 서버를 가리키도록 설정해요. DNS 제공업체에 로그인해서 도메인을 관리하면 됩니다.
계속하기 전에 권위 있는 조회(authoritative lookup)로 레코드가 올바른지 확인해요. example.com을 여러분의 도메인 이름으로 바꾸고, IPv6를 사용한다면 type=A를 type=AAAA로 바꿔 주세요:
curl "https://cloudflare-dns.com/dns-query?name=example.com&type=A" \
-H "accept: application/dns-json"
또한 서버가 공용 인터페이스에서 포트 80과 443으로 외부에서 접근 가능한지 확인해요.
집이나 제한된 네트워크에 있다면 포트를 포워딩하거나 방화벽 설정을 조정해야 할 수도 있어요.
우리가 할 일은 설정에 도메인 이름을 넣고 Caddy를 시작하는 것뿐이에요. 몇 가지 방법이 있어요.
Caddyfile
HTTPS를 얻는 가장 흔한 방법이에요.
Caddyfile(확장자 없음)이라는 파일을 만들고 첫 줄에 도메인 이름을 넣어요. 예를 들어:
example.com
respond "Hello, privacy!"
그다음 같은 디렉터리에서 실행해요:
caddy run
Caddy가 TLS 인증서를 프로비저닝하고 사이트를 HTTPS로 서빙하는 걸 볼 수 있을 거예요. Caddyfile의 사이트 주소에 도메인 이름이 들어 있었기 때문에 가능했던 거예요.
file-server 명령
정적 파일을 HTTPS로 서빙하는 것만 필요하다면 이 명령을 실행해요(도메인 이름을 바꿔서):
caddy file-server --domain example.com
Caddy가 TLS 인증서를 프로비저닝하고 사이트를 HTTPS로 서빙하는 걸 볼 수 있을 거예요.
reverse-proxy 명령
HTTPS 위에서의 간단한 리버스 프록시(TLS 터미네이터 역할)만 필요하다면 이 명령을 실행해요(도메인 이름과 실제 백엔드 주소를 바꿔서):
caddy reverse-proxy --from example.com --to localhost:9000
Caddy가 TLS 인증서를 프로비저닝하고 사이트를 HTTPS로 서빙하는 걸 볼 수 있을 거예요.
JSON 설정
일반적인 규칙은 어떤 호스트 매처든 자동 HTTPS를 유발한다는 거예요.
따라서 다음과 같은 JSON 설정이면 프로덕션 준비가 된 자동 HTTPS가 활성화돼요:
{
"apps": {
"http": {
"servers": {
"hello": {
"listen": [":443"],
"routes": [
{
"match": [{
"host": ["example.com"]
}],
"handle": [{
"handler": "static_response",
"body": "Hello, privacy!"
}]
}
]
}
}
}
}
}