Disponible en v0.5.2
- Registros de servidores de nombres coherentes y replicación autenticada de desafíos DNS-01 entre varios nodos.
- Instalaciones privadas con una autoridad de certificación local y listas explícitas de rangos CIDR permitidos para los backends.
- Exportación de certificados y claves para servicios que gestionan su propio TLS, incluido ocserv.
¿Actualizas desde v0.4.x? Sigue la guía de migración antes de sustituir una instalación existente. Guía de migración
Usar el servicio público
No necesitas una cuenta ni registrar un dominio. Tu backend debe tener una IP pública permitida y ejecutar un servicio HTTP en el puerto 80 accesible desde DNSBox.
Sustituye 198.51.100.20 por la dirección IPv4 pública de tu servidor:
https://198-51-100-20.dnsbox.io
DNS resuelve el nombre de host a un proxy DNSBox. El proxy termina la conexión HTTPS y reenvía HTTP a la IP codificada en el nombre de host. No instala ningún certificado en tu servidor.
Let's Encrypt valida el nombre de host mediante DNS-01. El certificado corresponde a ese nombre, no a la dirección IP en sí. La primera conexión TLS puede tardar más mientras se emite el certificado.
La conexión del navegador a DNSBox usa HTTPS. La conexión de DNSBox al backend usa HTTP. Se admiten cambios de protocolo a WebSocket.
Un backend IPv6 puede codificarse como 2a01-4f8-c17-b8f--1.dnsbox.io. Un guion representa dos puntos; dos guiones representan ::.
Comprueba primero la resolución DNS y después HTTPS. Usa tu propio backend HTTP accesible para esta prueba:
dig +short 198-51-100-20.dnsbox.io
curl -v https://198-51-100-20.dnsbox.io/
La respuesta DNS contiene la dirección del proxy. Una conexión TLS válida y una respuesta HTTP correcta del backend son comprobaciones independientes.
Ejecutar dentro de una red privada
El modo TLS local funciona sin DNS público, redirección de puertos ni acceso a Internet. DNSBox crea su propia autoridad de certificación. Los clientes deben confiar en esa CA.
Ejemplo: DNSBox en 192.168.1.2, con backends HTTP en 192.168.1.0/24:
./dnsboxd --domain=home.arpa --ip=192.168.1.2 \
--tls-mode=local --allowed-cidrs=192.168.1.0/24 \
--dns-listen=192.168.1.2:53 --https-listen=192.168.1.2:443 \
--data-dir=/var/lib/dnsbox
Reenvía únicamente la zona home.arpa desde el resolvedor de tu LAN a 192.168.1.2. DNSBox es autoritativo para su zona; no es un resolvedor recursivo de uso general.
Emite un certificado local para crear la CA y después instala /var/lib/dnsbox/ca/root.crt en el almacén de autoridades de confianza de cada cliente. Mantén root.pem en privado. La guía de despliegue incluye el comando de inicialización.
Para un backend en 192.168.1.50, abre https://192-168-1-50.home.arpa. Los clientes de la LAN necesitan acceso a los puertos DNS y HTTPS de DNSBox; DNSBox necesita acceso al puerto HTTP del backend.
Alojar tu propia instancia con Let's Encrypt
Usa un dominio o subdominio que controles y delega su zona DNS a tu servidor de nombres DNSBox. Un solo nodo puede servir la zona; varios nodos aportan redundancia.
Para la validación DNS-01 pública, permite tráfico entrante UDP 53 y TCP 53, además de HTTPS saliente y resolución DNS. No se necesita el puerto 80 entrante. El puerto 443 solo debe ser accesible para los clientes previstos.
Los backends HTTP privados pueden usar certificados de confianza pública para sus nombres de host cuando la validación DNS-01 es pública. Autoriza esos backends explícitamente con --allowed-cidrs y configura DNS y las rutas para tus clientes.
Si usas varios nodos, configura la misma lista de servidores de nombres y los mismos registros en todos ellos, además de TLS mutuo para replicar los desafíos. Cada nodo configurado debe confirmar el desafío antes de continuar con la emisión.
Hay archivos de distribución para Linux, macOS y Windows. El instalador admite --no-systemd para el arranque manual o con otro supervisor de procesos. No desactiva el resolvedor del sistema.
Certificados para ocserv y otros servicios
El servicio público no exporta sus claves privadas. Si tu servicio necesita archivos de certificado, aloja DNSBox con una zona delegada que controles.
Ejecuta --issue con un nombre de host que codifique una IP dentro de esa zona. DNSBox escribe una cadena de certificados PEM y una clave privada en <data-dir>/certs y después termina. Durante la emisión ACME sirve DNS, pero deja libre el puerto HTTPS 443.
Apunta ese nombre de host directamente a tu servicio mediante un registro A/AAAA explícito. Para ocserv, configura server-cert y server-key. El proxy HTTP de DNSBox no implementa OpenConnect ni DTLS.
Configura la renovación y recarga tu servicio cuando cambien los archivos. Un comando de ejecución única no renueva certificados después de terminar. No ejecutes dos procesos DNSBox con el mismo directorio de datos.
Preguntas
¿Puedo usar IP privadas con el servicio público?
No. El proxy público está destinado a backends públicos permitidos. Ejecuta tu propia instancia con una lista explícita de rangos CIDR permitidos para las direcciones privadas.
¿Qué ocurre si cambia mi IP?
La IP forma parte del nombre de host. Usa un nombre nuevo para la nueva IP; los clientes que usen el nombre anterior seguirán apuntando a la dirección anterior.
¿DNSBox demuestra la propiedad de la IP del backend?
DNS-01 demuestra el control del nombre de host DNS. No verifica la propiedad de la IP del backend ni del contenido que sirve.
¿Los certificados se renuevan automáticamente?
Un servicio DNSBox en ejecución renueva los certificados que gestiona. Los certificados exportados necesitan un proceso de renovación y una recarga del servicio que los utiliza.
¿Qué ocurre si el backend está desconectado?
DNS y TLS pueden seguir funcionando, pero el proxy no puede devolver el contenido de la aplicación. Comprueba el servicio HTTP del backend, su cortafuegos y su accesibilidad.
¿Dónde puedo informar de un problema?
Abre una incidencia en GitHub con la versión de DNSBox, el modo de despliegue y los mensajes de error pertinentes. Elimina claves privadas, tokens y otros secretos.
Referencia técnica
- DNS autoritativo sobre UDP y TCP. Los nombres de host con una IP codificada se resuelven a la dirección del proxy configurado, no directamente al backend.
- Registros personalizados A, AAAA, CNAME, MX y TXT; registros ALIAS en la raíz de la zona con actualización en segundo plano.
- ACME DNS-01 o una CA local. La replicación del clúster transmite desafíos TXT temporales; las claves privadas de los certificados permanecen en sus respectivos nodos.
- La API de administración escucha únicamente en la interfaz de bucle local, en 127.0.0.1:8080 de forma predeterminada. El acceso remoto se realiza mediante un túnel SSH.