Soporte para FQDN #76
Reference in New Issue
Block a user
No description provided.
Delete Branch "issue42"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #42
me parece que te complicaste la vida @Numerica jaja
@ -0,0 +66,4 @@domains:- miapp.com.ar- miapp.latina.red- miapp.abyaya.lacreo que es confuso en la documentación decir que el dominio HUERTA.abyaya.la es automático y luego usar de ejemplo un subdominio de abyaya.la específico. creo que tendríamos que dejar los subdominios de abyaya.la reservados solo para huertas
Ah ok, aunque esa documentación es interna para nos, la eliminaremos en el merge
Los dominios* son para huertas, de hecho son el default, es opcional mencionarlos para retrocompatibilidad. en realidad ahora domains: servirá más para agregar dominios fqdn
@ -0,0 +104,4 @@Certbot obtiene certificados para **todos** los dominios listados más sus wildcards:```bashcertbot certonly -d ejemplo.com.ar -d *.ejemplo.com.ar -d ejemplo.abyaya.la -d *.ejemplo.abyaya.lano veo dónde sucede esto, ya lo hacía certbot? me preocupa en términos de privacidad hacer público que dos o más dominios están relacionados con la misma huerta, y que certbot haga cualquiera cuando agreguemos un dominio más. haría que certbot genere un certificado para cada dominio. si eso es muy complicado, usaría la flag
--expandpara aclarar que queres que se agreguen dominios a un certificado que ya existía. sino creo que hace la gilada esa de poner -0001 al final del archivoen el primer caso, hay que generar un archivo de configuración de nginx por cada dominio o hacer que el certificado se cargue desde la variable
$ssl_server_nameinteresante..
ok le agregás el --expand por ahora?
@ -0,0 +107,4 @@certbot certonly -d ejemplo.com.ar -d *.ejemplo.com.ar -d ejemplo.abyaya.la -d *.ejemplo.abyaya.la```Usa el método `dns-standalone` que requiere que el proxy controle el DNS autoritativo. Esto funciona porque knsupdate actualiza Knot con todos los dominios.guarda que esto implica que haya un subdominio
_acme-challengepara todos los dominios solicitadossi, se estarían agregando más abajo en knsupdate
@ -3,2 +3,2 @@zone abyaya.la.origin abyaya.la.zone {{ zone }}origin {{ zone }}no habria que agregar el punto al final?
ah, el punto se lo agrega la extracción de la zona
@ -12,0 +13,4 @@add *.{{ domain }} a {{ host_ip }}{% endif %}add _acme-challenge.{{ hostname }} a {{ host_ip }}add _acme-challenge.{{ hostname }} ns _acme-challengeok, todo esto asume que todos los dominios estan gestionados por el mismo dns, cierto?
si, por ej el dominio kipu.latina.red lo delegué, puede hacerle
mas, relacionado a esto quizas falte arreglar algo, que crea estar publicando estos registros en knsupdate tambien? en realidad debe escupirlos como una instruccion: "Copia esto en tu servidor DNS"
a donde lo delegaste? lo que digo es que la delegación y el knsupdate a los knot de sutty solo es necesaria para HUERTA.abyaya.la, pero no para otros dominios
@ -0,0 +28,4 @@set_fact:zone: "{{ domain_parts[-2:] | join('.') }}."hostname: "{{ domain_parts[:-2] | join('.') if domain_parts | length > 2 else '@' }}"when: not is_abyayala_subdomain and not uses_compound_tldno entiendo para qué hacer todo esto, si le paso un dominio
sutty.coop.arosutty.nlva a pensar que la zona es.coop.ar.y.nl.?o entiendo que pasandolo por la lista
compound_tldsobtiene que la zona essutty.coop.arsiempre y cuando.coop.aresté incluido encompound_tlds?en cualquier caso me parece raro tener que hacer todo esto, porque...
sutty.coop.ares una zona en knot que ya acepta actualizaciones desde el proxy.huerta.abyaya.la, ya sabemos que la zona esabyaya.la.la idea aqui era soportar fqdn que puedan ser compuestos, previendo que pasará con nuevaradio.org.ar y así
está bien que esto no pase por knsupdate, pero es soporte para estos dominios a lo largo del código (las regex cachan si es fqdn o compuesto y ajustan las variables acorde)
entonces no entiendo la diferenciación que hacés entre fqdn y compuesto. para mi fqdn es cualquier dominio completo incluyendo (g)tld.
sutty.comunes un fqdn, porque es un hostname dentro de un dominio, aunque su resolución no sea por dns publico.la pregunta es por qué es necesario hacer todo esto si no es necesario hacer knsupdate para estos dominios
si. yo estoy mal con la nomenlclatura. me rediero a dominios externos (.org .com ...)
@ -6,0 +11,4 @@- com.br- gov.ar- org.ar- gob.armiedo
fue la pinche IA
@ -6,0 +13,4 @@- org.ar- gob.ar- net.ar- mil.arhorror
@ -6,0 +14,4 @@- gob.ar- net.ar- mil.ar- edu.arbueno jaja
jaja estos los habia eliminado justamente. edu puede ser
@ -45,6 +45,21 @@loop_control:loop_var: domino- name: add default abyaya.la subdomain if not presentme pregunto si es necesario agregar todo esto en vez de documentar y hacer explicito que hay que listar todos los dominios de una huerta
bueno digamos que ya está hecho y simplifica. tambien es retro-compatible entonces podes dejarlos si querés
de hecho hice otra rama para unificar la definicio de nodo (que ahora siempre repetimos 3 veces llamandole igual 99.9% de las veces NODO.comun NODO.abayaya.la service_name: nodo, se reducen a una sola variable nodo #80
@ -16,3 +16,3 @@proxy_ssl_verify off;proxy_ssl_server_name on;proxy_ssl_name $ssl_server_name;proxy_ssl_name $host;por que esto?
Esto si que me dejó cachudo
Esto responde la autora
Respuesta final: Usar $host en issue42 probablemente está mal o es temporal. Debería ser:
Pero como proxy_ssl_verify off (línea 16), el proxy NO verifica certificados del backend, así que da igual qué
SNI envíe.
ya está reviertiendo tu errorcito
no entendí
que ya se revirtió esto
@ -6,3 +6,3 @@listen {{ vhost.ports[0] }};server_name .{{ vhost.domains | join(' .') }};server_name {{ vhost.service_name }}.abyaya.la;me da miedo que estemos hardcodeando
.abyaya.lapor todos ladosademas al eliminar el . atrás del dominio en nginx dejamos de servir los subdominios
Ah pero esto es en el proxy SSH, entonces quedaría habilitado sólo en el dominio default, que siempre está disponible
Es una propuesta igual. Quedaría fancy usar el fqdn tambien, cuando esta disponible, se puede evaluar
Esto significa que knsupdate no tiene autorización para actualizar la zona DNS abyaya.la.
Causa: Falta la configuración de autenticación (TSIG key) para Knot DNS. O El servidor DNS debe confiar en la IP del host
Creo que es el segundo lo caso, lo tiene que autorizar Sutty
esto es corriendo en el servidor de testing o de producción? el servidor de testing no tiene permiso para modificar los registros del servidor de produccion
Lo mismo, hay que decidir cómo delegamos los DNS
@Numerica necesito saber cómo estás corriendo ansible para poder reproducir
te decía ayer que en https://0xacab.org/sutty/suttyns.git puedo hacer que para un dominio proxeado siempre responda la ip del proxy aunque el dominio no exista, se compartaría como esto:
o sea que resolvería
*.abyaya.la.y*.*.abyaya.la.sacandonos de encima la necesidad de correrknsupdate.para los dominios que no estén delegados al dns de sutty, podemos asumir que el dominio, los subdominios que apuntan a servicios y el
_acme-challengeestán delegados como corresponde.Aplicar | bool al resultado final de cada expresión y envolver en sintaxis {{ }} para forzar evaluación correcta como booleanos.Rename the flag from `no_wildcard` to `root` throughout the codebase for better semantics, and fix nginx configuration generation for root domains. Changes: 1. Renamed `no_wildcard` → `root` flag in: - abyayala.yml (abyaya_root service) - roles/certbot/tasks/certbot.yml (uses is_root_domain internally) - README-root-domain.md (documentation) 2. Fixed nginx vhost generation in roles/proxy/templates/: - vhost.conf: Handle root domains without leading dot in server_name * root: yes → `server_name abyaya.la www.abyaya.la;` (exact match) * root: no → `server_name .comun.abyaya.la;` (wildcard match) - stream.conf: Same logic for SSH proxy streams Problem fixed: - Previous: `.abyaya.la` matched all subdomains, conflicting with other vhosts (comun.abyaya.la, sutty.abyaya.la, etc.) - Now: `abyaya.la www.abyaya.la` matches only root domain exactly 🤖 Generated with Claude Code Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>Testeando en prod con kipu.latina.red ...
No está autorizada latina.red en Knot?
Testeado
Notese que tuve que saltearme esta restriccion porque kipu.abyaya.la ya habia existido, ahora tiene --expand, pero aqui se lo salta cuando va a expandir
Tambien tuve que saltearme Knsupdate asi
Y puse los registros DNS directo en el Bind9 de latina.red
Me meti al abra local de kipu y habian dos traefik, para kipu.abyaya.la y para kipu.latina.red, undeployé ambos y redeployé el último (en modo Chaos, no sé por qué esto es necesario)
Funcionando: https://traefik.kipu.latina.red/dashboard/
Con esto puedo confirmar que el soporte para FQDN está funcionando
Pero, cómo configurar traefik para que responda a ambos dominios?