🔒 SSL сертификаты для IP адресов
- HTTPS для любого IP: Получайте SSL сертификат через Let's Encrypt для любого IP адреса
- Проверенные браузерами: Все сертификаты официально подтверждены, нет ошибок в браузере
- Без настройки: Не требуется конфигурация DNS или SSL сервера
- Автоматическое обновление: Сертификаты обновляются автоматически
🔧 Как это работает
Получить SSL-сертификат для IP-адреса напрямую невозможно: удостоверяющие центры (включая Let's Encrypt) не выдают сертификаты на голые IP. Сервис DNSBox решает эту проблему — вы получаете бесплатный SSL-сертификат для любого публичного IP за секунды, без необходимости настраивать домен или собственный DNS.
Мы автоматически подменяем DNS и выполняем ACME-валидацию, выдавая сертификат от Let's Encrypt через поддомен вида 123.123.123.123.dnsbox.io
. Поддерживаются как IPv4, так и IPv6. Всё работает сразу — достаточно перейти по HTTPS на нужный IP через DNSBox.
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 — это универсальный инструмент для быстрого доступа к IP-адресам через DNS и HTTPS, без сложных настроек:
- Веб-разработка и тестирование: Создавайте временные домены для локальных и удаленных серверов. Идеально для демонстрации проектов клиентам и тестирования без изменения DNS-записей.
- Интернет вещей (IoT): Обеспечьте стабильный доступ к IoT устройствам в динамических сетях через постоянные доменные имена. Упростите управление и мониторинг устройств.
- Временные серверы: Мгновенно получайте доменные имена для демонстраций и временных проектов. Не тратьте время на покупку и настройку отдельных доменов.
- Корпоративное использование: Разверните собственный узел DNSBox для полного контроля над DNS и SSL-сертификатами. Обеспечьте безопасность и конфиденциальность данных.
🌍 Почему стоит использовать DNSBox для получения SSL по IP?
- ✨ Не нужно владеть или настраивать домен
- ✨ Выдача SSL-сертификатов Let's Encrypt без домена
- ✨ Работает с любыми IP (IPv4 и IPv6), не требует статического адреса
- ✨ Автоматическая настройка DNS и HTTPS
- ✨ Быстро, надёжно, общедоступн и подходит для production
- ✨ Идеально для API, CI/CD, DevOps, временных серверов и VPN
❓ Часто задаваемые вопросы
- Что делает DNSBox? DNSBox позволяет получить бесплатный SSL-сертификат для любого IP-адреса — даже если у вас нет домена. Вы просто используете поддомен вида 123.123.123.123.dnsbox.io, и мы автоматически выдаём и поддерживаем сертификат.
- Как использовать DNSBox? Просто замените ваш IP в URL на
IP.dnsbox.io
> Например: https://167.172.5.205.dnsbox.io Мы сами настроим DNS и сертификат — вам ничего не нужно делать. - Можно ли использовать DNSBox, чтобы получить HTTPS по IP адресу без домена? Да. Это и есть основная задача DNSBox — вы получаете SSL-сертификат на IP-адрес без необходимости владеть доменом. Просто используйте поддомен
IP.dnsbox.io
, и мы выполним автоматическую ACME-валидацию через Let's Encrypt. - Это безопасно? Да. Мы используем Let's Encrypt и шифруем соединение через HTTPS. Вы также можете самостоятельно проверить полученный сертификат.
- Это бесплатно? Да, для публичного использования — и код открытый
- С какими IP работает DNSBox? С любыми публичными IPv4 и IPv6-адресами.
- А если у меня динамический IP? Вы можете использовать DNSBox, но сертификат будет действителен только для того IP, который вы указали. Для динамических адресов рекомендуем использовать DDNS-сервисы.
- Как долго действует сертификат? Сертификаты Let's Encrypt действуют 90 дней, и мы автоматически их обновляем.
- Могу ли я использовать DNSBox в production? Да. DNSBox предназначен для production-сценариев: CI/CD, публичные API, одностраничные сайты, IoT-устройства — всё, что требует HTTPS по IP.
- Нужно ли мне регистрироваться? Нет. Всё работает без учётной записи.
- Что будет, если мой сервер не отвечает или отключён? Если по IP-адресу, указанному в *.dnsbox.io, не удаётся установить соединение — браузер покажет стандартную ошибку. DNSBox продолжит обслуживать сертификат, и он снова заработает, как только сервер станет доступен.
- Как работает верификация IP перед выдачей сертификата? Мы используем DNS-валидацию через поддомен. Система DNSBox управляет DNS-зоной dnsbox.io, поэтому может быстро устанавливать необходимые TXT-записи для Let's Encrypt
- Можно ли использовать DNSBox с внутренними или приватными IP (например, 192.168.0.1)? Нет. Сервис работает только с публичными IP-адресами, доступными из интернета.
- Где код? Смотреть на GitHub
🧪 Хотите развернуть самостоятельно?
DNSBox позволяет вам получить SSL-сертификат для IP-адреса без необходимости покупать домен или настраивать DNS — вы можете использовать поддомены вида 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-запросы,
- автоматически получает SSL-сертификаты для IP-адресов через Let's Encrypt,
- открывает HTTPS и WSS-доступ без привязки к поддоменам
dnsbox.io
.
💡 Это решение идеально подходит, если вы:
- хотите полностью контролировать инфраструктуру,
- разворачиваете API, dev-сервисы или VPN на «голых» IP,
- создаёте автономные проекты, которым нужен HTTPS без домена.
🔗 Ознакомьтесь с исходниками и документацией:
github.com/crypto-chiefs/dnsbox
✅ Как проверить, что всё заработало
После настройки DNSBox важно убедиться, что ваш SSL-сертификат для IP-адреса успешно выпущен и доступен по HTTPS. Ниже — инструкция для двух сценариев: использование поддоменов IP.dnsbox.io
и самостоятельное развёртывание.
1. Если вы используете IP.dnsbox.io
DNSBox автоматически поднимает DNS и HTTPS-прокси для вашего IP, поэтому всё работает без дополнительной настройки.
Проверка DNS-записи:
dig +short 167.172.5.205.dnsbox.io
Ожидаемый ответ — IP одного из NS-серверов DNSBox (например, 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.
и т.д.
Проверка IP-адресов NS-серверов:
dig A ns1.example.com
dig A ns2.example.com
Ответ должен содержать реальные IP ваших VPS-серверов.
Проверка зоны через конкретный NS-сервер:
dig @167.172.5.205 A example.com
Убедитесь, что домен резолвится в ожидаемый IP-адрес.
📌 Если возникают ошибки — убедитесь, что DNS работает, NS-записи корректны, и DNSBox запущен на всех NS-серверах.
⚙️ Технические детали
Базовая реализация
- Написан на Go без сторонних зависимостей на уровне HTTP/DNS
- Использует miekg/dns для собственного DNS-сервера
- Встроенные DNS (UDP + TCP на порту 53), HTTPS (:443) и REST API (:80)
- Один бинарник и systemd-юнит — подходит для серверов, VPS и edge-нод
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: Динамически сгенерированы (включая peer discovery)
- CNAME, MX, TXT: Могут быть заданы вручную через custom_domains.txt
Модуль customdns
- Позволяет добавлять кастомные записи A, CNAME, MX, TXT, AAAA через custom_domains.txt
- Файл внедрён как 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-инструменты
Безопасность и ограничения
- Блокировка IP через blacklist.txt (поддерживает IPv4, IPv6 и CIDR)
- HTTPS и DNS-ответы не выдаются для заблокированных адресов
- Все peer-коммуникации используют временные ключи и зашифрованную доставку
Развёртывание и конфигурация
-
Управляется через переменные окружения:
- DNSBOX_DOMAIN
- DNSBOX_IP
- DNSBOX_NS_NAME
- DNSBOX_DEBUG
- Установка одной командой через curl | bash, установка systemd-юнита
- Поддерживает флаг --force-resolv для отключения systemd-resolved
- Поддерживает флаг --debug для включения всех логов
Как получить SSL-сертификат для IP-адреса
Обычные CA (сертификационные центры) не выдают сертификаты на IP-адреса напрямую. DNSBox — это уникальный сервис, который позволяет обойти это ограничение с помощью динамической подстановки DNS. Используйте поддомен формата IP.dnsbox.io
, и мы выполним валидацию через Let's Encrypt, выдав рабочий HTTPS-сертификат.
Это идеальное решение, если вам нужен SSL для сервера по IP, HTTPS для API без домена, или вы работаете с IoT, тестовыми средами, туннелями, где нет возможности зарегистрировать доменное имя.