본문 바로가기
WIKI 기술 지식 베이스

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!"
							}]
						}
					]
				}
			}
		}
	}
}

더 알아보기 (Learn more)