ServBay에서 ZeroSSL SSL 인증서를 발급받는 방법
ServBay는 강력한 로컬 웹 개발 환경으로, ACME(Automated Certificate Management Environment) 프로토콜을 통한 SSL/TLS 인증서 자동 발급 및 관리를 지원합니다. 이를 통해 개발자는 로컬 환경에서 손쉽게 HTTPS를 적용하여 실제 운영 환경과 유사하게 개발 및 테스트를 진행할 수 있으며, Service Worker, 보안 컨텍스트 API 등 HTTPS가 필요한 기능을 원활히 실험할 수 있습니다. 본 안내서는 ServBay에서 ZeroSSL을 통해 무료 SSL 인증서를 발급받는 과정을 단계별로 설명합니다.
개요
ServBay에 통합된 ACME 기능을 활용하면, ZeroSSL과 같은 신뢰할 수 있는 인증기관(CA)에 직접 실제로 공개적으로 신뢰받는 SSL 인증서를 신청할 수 있습니다. ServBay는 인증서 신청, 검증(DNS-01 챌린지 방식 사용), 갱신 과정을 모두 자동으로 처리해주어, 로컬 환경에 HTTPS를 적용하는 작업을 획기적으로 간소화합니다.
주요 활용 사례
- 로컬 개발 환경에서 운영 환경과 동일한 HTTPS 설정을 시뮬레이션
- 서비스 워커, Web Authentication API, 일부 브라우저의 위치정보 API, Payment Request API 등 보안 컨텍스트(Secure Context)가 필요한 웹 기능 테스트
- 로컬 개발 환경과 운영 환경의 일관성을 유지해 프로토콜 차이로 인한 문제 최소화
- (예: 내부망 터널링 등으로) 외부에서 접속 가능한 로컬 서비스에 신뢰받는 SSL 인증서 제공
사전 준비사항
ZeroSSL 인증서 신청을 시작하기 전에 아래 조건을 충족했는지 확인하세요.
- 하나 이상의 도메인 보유: 본인 소유의 도메인 관리 권한이 필요하며, 인증서는
localhost
나 IP 주소가 아니라 실제 도메인에 대해 발급받아야 합니다. - 도메인 DNS 레코드 관리 권한: ZeroSSL(ACME DNS-01 챌린지 방식)은 도메인 소유권 확인을 위해 DNS에 특정 TXT 레코드를 추가해야 하므로, DNS를 수정할 수 있어야 합니다.
- DNS 제공업체의 API 키 취득: ServBay는 DNS API를 이용해 DNS 레코드 인증을 자동화합니다. 따라서, Cloudflare, GoDaddy, Alibaba Cloud DNS 등 사용 중인 DNS 서비스의 API 액세스 키 또는 토큰이 필요합니다. 제공업체별 API 키 발급 방식은 각 업체의 사용자 패널을 참고하십시오. API 변수명 및 취득 방법은 acme.sh Wiki의 DNS API 항목에서 확인할 수 있습니다(ServBay의 ACME 클라이언트는 acme.sh의 DNS API 포맷과 호환됩니다).
인증서 신청 절차
ServBay에서 ZeroSSL을 이용해 SSL 인증서를 발급받는 구체적인 단계는 다음과 같습니다.
ServBay 실행 및 관리 패널 열기: ServBay 앱 아이콘을 더블 클릭해 실행한 후, 시스템 트레이 아이콘이나 메뉴에서 ServBay 관리 패널을 엽니다.
SSL 인증서 관리 화면 진입: 관리 패널 사이드바에서 SSL 인증서 탭을 클릭합니다.
새 인증서 신청 시작: SSL 인증서 목록 우측 상단의 플러스(+) 버튼을 클릭하여 인증서 신청 설정 창을 엽니다.
인증서 신청 정보 입력: "Request Certificate"(인증서 신청) 창에서 아래 주요 정보를 입력하십시오.
- Common Name(설명용 이름): 해당 인증서를 구분하기 쉬운 이름(ex:
servbay.demo SSL
)을 정합니다. ServBay 내부에서만 사용됩니다. - Usage Purpose(용도):
TLS/SSL
을 선택해 웹 트래픽 암호화에 사용할 인증서임을 지정합니다. - Request Method(신청 방식):
ACME
를 선택하여 ACME 프로토콜을 통한 자동 신청을 설정합니다. - Issuer(발급기관):
ZeroSSL
을 선택합니다. - DNS API Provider(DNS API 공급자): 드롭다운에서 도메인에서 사용하는 DNS 제공업체를 선택합니다. 다양한 주요 업체가 지원됩니다.
- Algorithm(알고리즘):
ECC
(타원곡선 암호화) 및 키 길이384
를 권장합니다. ECC 384는 RSA와 동등한 보안 수준을 제공하면서도 더 짧고 성능이 뛰어납니다. - E-Mail Address(이메일 주소): 유효한 이메일 주소를 입력하세요. ZeroSSL 또는 ServBay에서 인증서 만료, 갱신 실패 등에 관한 알림을 받을 수 있습니다.
- DNS API Tokens(DNS API 토큰): DNS 제공업체에서 발급받은 API 키 정보를 입력합니다. 일반적으로
키=값
형태(예:CF_Key=xxx CF_Email=xxx
)로, 여러 쌍은 공백으로 구분합니다. 정확한 입력법은 선택한 DNS API Provider 및 acme.sh Wiki를 참고하십시오. 중요: API 정보 앞에export
등과 같은 shell 구문을 추가하지 마시고, 오로지키=값
또는키="값"
형태만 사용하십시오. - Domain(도메인): 인증서를 신청할 도메인을 입력합니다. 여러 도메인(또는 와일드카드 포함)은 영어 쉼표
,
로 구분합니다. 예:servbay.demo, www.servbay.demo, *.servbay.demo
와일드카드 인증서(*.yourdomain.com
)를 신청하려면 반드시 DNS API 방식으로 인증해야 합니다.
(참고: 이미지의 예시 도메인은 본문 예시와 다를 수 있으니, 반드시 본문의 설명을 따르시기 바랍니다)
- Common Name(설명용 이름): 해당 인증서를 구분하기 쉬운 이름(ex:
신청 제출: 입력 내용을 꼼꼼히 확인한 뒤, 우측 하단의 Request(신청) 버튼을 클릭하세요.
발급 과정을 기다림: ServBay가 백그라운드에서 ACME 클라이언트를 실행하여 ZeroSSL 서버와 통신, 제공한 DNS API로 자동 TXT 레코드 생성 및 소유권 검증 후 인증서를 발급·설치합니다. 이 과정은 DNS 전파 속도와 ZeroSSL 응답 시간에 따라 다소 시간이 걸릴 수 있습니다. 진행 상황은 ServBay 화면에서 확인할 수 있습니다.
인증서 목록에서 확인: 발급이 완료되면 신규 인증서가 SSL 인증서 목록에 "Valid"(유효) 상태로 추가됩니다.
인증서 사용 방법
인증서가 성공적으로 발급되어 ServBay에 추가된 후, 로컬 사이트에 아래와 같이 설정하세요.
- 사이트 설정 메뉴로 이동: 관리 패널 사이드바의 사이트 메뉴를 클릭합니다.
- 사이트 선택 또는 수정: HTTPS로 설정할 기존 사이트를 선택하거나 새 사이트를 생성합니다.
- SSL 인증서 설정: 사이트 설정 화면의 SSL 항목에서, 드롭다운 메뉴를 "None" 또는 ServBay User CA 대신 ACME로 변경합니다.
- 발급된 인증서 선택: 우측에 표시되는 ACME 인증서 목록에서 앞서 Common Name으로 등록한 인증서를 선택합니다.
- 설정 저장: 저장 버튼을 눌러 변경 사항을 적용하세요. ServBay가 Caddy 또는 Nginx 등 웹 서버를 자동으로 재설정하여 해당 인증서로 HTTPS 서비스를 제공하게 됩니다.
(참고: 이미지의 예시 도메인은 본문 예시와 다를 수 있으니, 반드시 본문의 설명을 따르시기 바랍니다)
이제 https://도메인명
으로 로컬 웹사이트에 안전하게 접속할 수 있습니다.
인증서 갱신
ZeroSSL이 발급하는 인증서는 기본적으로 90일 유효합니다. ServBay ACME 기능은 인증서 만료일을 자동으로 모니터링하며, 만료 30일 전쯤 자동으로 갱신을 시도합니다. ServBay가 실행 중이고, DNS API 키가 여전히 유효하다면 별도의 수동 갱신 없이도 항상 최신 상태가 유지됩니다.
중요 안내 및 문제 해결
- DNS API 키 보안: DNS API 키는 DNS 레코드 수정 권한을 보유하므로 외부에 노출되지 않도록 반드시 안전하게 관리하세요.
- DNS 전파 시간: 인증서 발급은 DNS TXT 레코드 인증이 선행되어야 합니다. DNS 변경이 전 세계로 전파되는 데 수 분~수 시간이 소요될 수 있으니, 실패 시 잠시 대기 후 재시도하세요.
- API 키 입력 포맷: acme.sh Wiki에서 안내한 대로 정확한 입력 양식을 따라야 하며,
export
등 shell 명령 구문을 추가하지 않아야 합니다. 이로 인한 신청 실패가 빈번합니다. - 방화벽: 로컬 방화벽이나 네트워크 설정이 ServBay에서 ZeroSSL 또는 DNS API 서버 접속을 차단하지 않는지 반드시 확인하세요.
- ServBay User CA vs. ZeroSSL: ServBay에는 자체 ServBay User CA, Public CA가 내장되어 있습니다. 이 인증서는 로컬 개발에 특화되며, 운영체제나 브라우저에 ServBay 루트 인증서를 신뢰 설정해서 HTTPS를 적용합니다. 반면, ZeroSSL 인증서는 외부 네트워크 또는 생산 환경 시뮬레이션에 공신력 있는 인증서를 제공합니다. 사용 목적에 맞게 적합한 인증서 유형을 선택하십시오.
마치며
ServBay의 ACME 프로토콜 통합 덕분에 ZeroSSL에서 무료 SSL 인증서를 쉽고 빠르게 신청하고 관리할 수 있습니다. 로컬 개발 사이트에 HTTPS를 적용하여 한층 더 실제와 같은 보안 테스트와 개발 경험을 할 수 있으며, 자동화된 발급·갱신 기능 덕분에 HTTPS 설정이 그 어느 때보다도 간편해집니다.