🔒 IP 주소용 SSL 인증서
- 모든 IP에 대한 HTTPS: 모든 IP 주소에 대해 Let's Encrypt를 통해 SSL 인증서를 받으세요.
- 브라우저에서 검증됨: 모든 인증서는 공식적으로 인증되며, 브라우저에서 오류가 없습니다.
- 설정 불필요: DNS 또는 SSL 서버 구성이 필요하지 않습니다.
- 자동 갱신: 인증서는 자동으로 갱신됩니다.
🔧 작동 원리
IP 주소에 대한 SSL 인증서를 직접 받는 것은 불가능합니다. 인증 기관(예: Let's Encrypt)은 원시 IP에 대한 인증서를 발급하지 않습니다. DNSBox 서비스는 이 문제를 해결합니다. 이제 도메인이나 자체 DNS 설정 없이 모든 공용 IP에 대한 무료 SSL 인증서를 몇 초 만에 받을 수 있습니다.
우리는 자동으로 DNS를 변경하고 ACME 검증을 수행하여 123.123.123.123.dnsbox.io
형식의 서브도메인을 통해 Let's Encrypt 인증서를 발급합니다. IPv4와 IPv6 모두 지원됩니다. 모든 것이 즉시 작동하며, HTTPS를 통해 DNSBox를 통해 원하는 IP에 접속하면 됩니다.
DNSBox는 자동으로 IP 주소를 도메인 이름에 매핑합니다. IP를 서브도메인에 인코딩하십시오:
- IPv4:
1.2.3.4.dnsbox.io
→1.2.3.4
- IPv6:
2a01-4f8-c17-b8f--1.dnsbox.io
→2a01:4f8:c17:b8f::1
- HTTPS: 유효한 SSL 인증서를 Let's Encrypt를 통해 받으세요.
- WebSocket: 완벽한 지원 (Upgrade 헤더 유지)
🎯 사용 시나리오
DNSBox는 복잡한 설정 없이 DNS 및 HTTPS를 통해 IP 주소에 빠르게 접근할 수 있는 범용 도구입니다:
- 웹 개발 및 테스트: 로컬 및 원격 서버를 위한 임시 도메인을 생성하십시오. DNS 레코드를 변경하지 않고 클라이언트에게 프로젝트를 시연하거나 테스트하는 데 이상적입니다.
- 사물인터넷 (IoT): 동적 네트워크에서 IoT 장치에 대한 안정적인 액세스를 제공하고 고정된 도메인 이름을 통해 장치 관리 및 모니터링을 간소화하십시오.
- 임시 서버: 데모 및 임시 프로젝트를 위해 즉시 도메인 이름을 받으세요. 별도의 도메인 구매 및 설정에 시간을 낭비하지 마세요.
- 기업용 사용: DNSBox의 자체 노드를 배포하여 DNS 및 SSL 인증서를 완벽하게 제어하십시오. 데이터의 보안 및 기밀성을 보장하십시오.
🌍 왜 DNSBox를 사용하여 IP에 대한 SSL을 받는 것이 좋은가요?
- ✨ 도메인을 소유하거나 설정할 필요가 없습니다
- ✨ 도메인 없이 Let's Encrypt의 SSL 인증서를 발급받을 수 있습니다
- ✨ 모든 IP(IPv4 및 IPv6)와 작동하며, 고정 IP가 필요하지 않습니다
- ✨ DNS 및 HTTPS가 자동으로 설정됩니다
- ✨ 빠르고 신뢰할 수 있으며 공개 사용에 적합하고, 프로덕션 환경에 적합합니다
- ✨ API, CI/CD, DevOps, 임시 서버 및 VPN에 이상적입니다
❓ 자주 묻는 질문
- DNSBox는 무엇을 하나요? DNSBox는 도메인이 없어도 모든 IP 주소에 대해 무료 SSL 인증서를 받을 수 있는 서비스입니다. 단지
123.123.123.123.dnsbox.io
형태의 하위 도메인을 사용하면, 자동으로 인증서를 발급하고 유지 관리합니다. - DNSBox를 어떻게 사용하나요? URL에서 IP를
IP.dnsbox.io
로 바꿔주세요. 예를 들어: https://167.172.5.205.dnsbox.io DNS와 인증서는 자동으로 설정되므로, 별도로 하실 일이 없습니다. - DNSBox를 사용하여 도메인 없이 IP 주소에 HTTPS를 적용할 수 있나요? 네, 그것이 바로 DNSBox의 주요 기능입니다. 도메인 없이 IP 주소에 SSL 인증서를 발급받을 수 있습니다.
IP.dnsbox.io
형태의 하위 도메인을 사용하면, Let's Encrypt를 통해 자동으로 ACME 인증을 수행합니다. - 이 서비스는 안전한가요? 네, Let's Encrypt를 사용하며, HTTPS를 통해 연결을 암호화합니다. 또한 발급된 인증서를 직접 확인할 수 있습니다.
- 이 서비스는 무료인가요? 네, 공공 용도로는 무료로 제공되며, 코드도 공개되어 있습니다.
- DNSBox는 어떤 IP 주소와 함께 사용할 수 있나요? 모든 공용 IPv4 및 IPv6 주소와 사용할 수 있습니다.
- 동적 IP 주소를 사용할 경우 어떻게 하나요? DNSBox는 사용할 수 있지만, 인증서는 지정된 IP 주소에 대해서만 유효합니다. 동적 IP 주소의 경우 DDNS 서비스를 사용하는 것이 좋습니다.
- 인증서의 유효 기간은 얼마나 되나요? Let's Encrypt 인증서는 90일 동안 유효하며, 우리는 자동으로 갱신합니다.
- DNSBox를 프로덕션 환경에서 사용할 수 있나요? 네, DNSBox는 CI/CD, 공개 API, 싱글 페이지 웹사이트, IoT 장치 등 IP로 HTTPS가 필요한 모든 프로덕션 시나리오에 적합합니다.
- 가입해야 하나요? 아니요, 계정 없이도 사용할 수 있습니다.
- 서버가 응답하지 않거나 오프라인일 경우 어떻게 되나요? IP 주소에서 연결을 할 수 없는 경우, 브라우저는 기본 오류 메시지를 표시합니다. DNSBox는 인증서를 계속 제공하며, 서버가 다시 온라인 상태가 되면 인증서가 작동합니다.
- 인증서 발급 전에 IP 인증은 어떻게 이루어지나요? DNSBox는 하위 도메인을 통한 DNS 인증을 사용합니다. DNSBox 시스템은 dnsbox.io DNS 영역을 관리하므로, Let's Encrypt를 위한 TXT 레코드를 빠르게 설정할 수 있습니다.
- 내부 또는 프라이빗 IP (예: 192.168.0.1)에서 DNSBox를 사용할 수 있나요? 아니요, 이 서비스는 인터넷에서 접근 가능한 공용 IP 주소에서만 작동합니다.
- 소스 코드는 어디에 있나요? GitHub에서 보기
🧪 직접 배포하고 싶으신가요?
DNSBox는 도메인 구매나 DNS 설정 없이 IP 주소용 SSL 인증서를 받을 수 있게 해주는 서비스입니다. IP.dnsbox.io
형식의 서브도메인만 사용하면, 바로 '그대로' 작동합니다.
하지만 DNS와 인증서를 관리하는 완전 독립적인 인스턴스를 원하시면, 인프라를 수동으로 설정해야 합니다:
자체 배포를 위한 요구사항:
1. ✅ 도메인 구매 (예: example.com
).
2. 🖥 최소 두 대의 서버를 공용 정적 IP 주소로 임대 — 이들은 NS 서버로 사용됩니다.
3. 🛠 등록 기관에서 NS 레코드를 생성하여 이 IP를 지정하세요. 예를 들면:
ns1.example.com → 167.172.5.205
ns2.example.com → 134.199.248.116
4. 🚀 각 서버에 DNSBox 설치, 올바른 매개변수를 설정:
bash <(curl -sSL https://install.dnsbox.io) \
--ip=167.172.5.205 \
--domain=example.com \
--ns=ns1
매개변수 설명:
--ip
— 현재 서버의 공용 IP 주소 (NS 레코드에 있는 주소와 동일).--domain
— 루트 도메인, 예: example.com
.--ns
— 현재 NS 서버의 이름 (ns1
, ns2
등).
추가 옵션:
--force-resolv
— systemd-resolved를 비활성화 (포트 53이 사용 중일 경우).--debug
— 세부 로그 활성화 (DNSBOX_DEBUG=true
).
📌 설정 후, 귀하의 자체 DNSBox는 다음과 같이 동작합니다:
- 권한 있는 NS 서버로 작동,
- DNS 요청을 처리,
- 자동으로 IP 주소용 SSL 인증서를 Let's Encrypt를 통해 발급,
- HTTPS 및 WSS 접근을
dnsbox.io
서브도메인에 종속되지 않고 제공.
💡 이 솔루션은 다음과 같은 경우에 이상적입니다:
- 인프라를 완벽하게 제어하고 싶은 경우,
- ‘벌거벗은’ IP로 API, 개발 서비스 또는 VPN을 배포하는 경우,
- 도메인 없이 HTTPS가 필요한 독립적인 프로젝트를 생성하는 경우.
🔗 소스 코드 및 문서를 확인하려면:
github.com/crypto-chiefs/dnsbox
✅ 모든 것이 작동하는지 확인하기
DNSBox 설정 후, IP 주소에 대한 SSL 인증서가 성공적으로 발급되고 HTTPS를 통해 접근 가능한지 확인하는 것이 중요합니다. 아래는 두 가지 시나리오에 대한 지침입니다: IP.dnsbox.io
서브도메인 사용 및 자체 배포.
1. IP.dnsbox.io
를 사용하는 경우
DNSBox는 IP에 대한 DNS 및 HTTPS 프록시를 자동으로 설정하므로 추가 설정 없이 바로 작동합니다.
DNS 레코드 확인:
dig +short 167.172.5.205.dnsbox.io
예상되는 응답은 DNSBox의 NS 서버 중 하나의 IP입니다 (예: 설치 시 지정된 167.172.5.205
).
브라우저에서 HTTPS 확인:
https://167.172.5.205.dnsbox.io
🔒 브라우저에서 보호된 연결이 표시되어야 하며, Let's Encrypt에서 유효한 인증서를 확인할 수 있습니다.
2. DNSBox를 직접 배포한 경우
이 경우, 도메인, NS 레코드 및 DNSBox 서버를 관리합니다. 모든 것이 제대로 작동하는지 확인하십시오:
도메인의 NS 레코드 확인:
dig NS example.com
반환되는 값이 ns1.example.com.
, ns2.example.com.
등인지 확인하십시오.
NS 서버의 IP 주소 확인:
dig A ns1.example.com
dig A ns2.example.com
응답에는 실제 VPS 서버의 IP가 포함되어야 합니다.
특정 NS 서버를 통한 존 확인:
dig @167.172.5.205 A example.com
도메인이 예상되는 IP 주소로 해석되는지 확인하십시오.
📌 오류가 발생하면 DNS가 작동 중인지, NS 레코드가 올바른지, DNSBox가 모든 NS 서버에서 실행 중인지 확인하십시오.
⚙️ 기술적 세부 사항
기본 구현
- HTTP/DNS 수준에서 외부 종속성 없이 Go로 작성됨
- 자체 DNS 서버를 위해 miekg/dns 사용
- 내장 DNS (UDP + TCP 53번 포트), HTTPS (:443) 및 REST API (:80)
- 하나의 바이너리와 systemd 유닛 — 서버, VPS 및 엣지 노드에 적합
DNS 및 라우팅
도메인에서 IP 파싱:
1.2.3.4.dnsbox.io
→1.2.3.4
2a01-4f8-c17-b8f--1.dnsbox.io
→2a01:4f8:c17:b8f::1
(где -- → ::, - → :)
지원되는 DNS 요청 유형:
- A, AAAA: 도메인 이름에서 IP 주소
- TXT: ACME challenge 저장 및 복제
- NS, SOA, SRV: 동적으로 생성됨 (피어 발견 포함)
- CNAME, MX, TXT: custom_domains.txt를 통해 수동으로 지정 가능
customdns 모듈
- custom_domains.txt를 통해 A, CNAME, MX, TXT, AAAA 레코드를 추가할 수 있음
- 파일은 embed.FS로 임베드되어 외부 구성 관리자가 필요 없음
- IP 기반 생성과 병행하여 작동
TLS 및 HTTPS
- Let's Encrypt를 통한 dns-01 자동 인증서 발급
- TXT 레코드는 로컬에 저장되며 REST API를 통해 노드 간에 동기화됨
- 노드 간 인증서 암호화: ephemeral ECDH (X25519) + AES-GCM
- 인증서는 /var/lib/dnsbox/certs에 저장되며 각 요청 시 자동으로 검증됨
WebSocket
- Connection: Upgrade + Upgrade: websocket 지원
- 모든 wss:// 클라이언트와 호환, 브라우저 및 CLI 도구 포함
보안 및 제한 사항
- blacklist.txt를 통한 IP 차단 (IPv4, IPv6, CIDR 지원)
- 차단된 주소에 대해서는 HTTPS 및 DNS 응답을 제공하지 않음
- 모든 피어 통신은 임시 키와 암호화된 전송을 사용
배포 및 구성
-
환경 변수로 관리:
- DNSBOX_DOMAIN
- DNSBOX_IP
- DNSBOX_NS_NAME
- DNSBOX_DEBUG
- curl | bash를 통한 한 번의 명령어로 설치, systemd 유닛 설치
- --force-resolv 플래그 지원 (systemd-resolved 비활성화)
- --debug 플래그 지원 (모든 로그 활성화)
IP 주소에 대한 SSL 인증서 받는 방법
일반적인 인증 기관(CA)은 IP 주소에 대한 인증서를 직접 발급하지 않습니다. DNSBox는 DNS의 동적 치환을 통해 이 제한을 우회할 수 있는 독특한 서비스입니다. IP.dnsbox.io
형식의 서브도메인을 사용하면, Let's Encrypt를 통해 유효한 HTTPS 인증서를 발급받을 수 있습니다.
이 솔루션은 IP 서버용 SSL, 도메인 없이 API용 HTTPS, 또는 IoT, 테스트 환경, 터널링에서 도메인 이름을 등록할 수 없는 경우에 이상적입니다.