TLS certificates para servicios internos bien hechos

DNS de horizonte dividido frente a alternativas

  • Muchos critican el DNS de horizonte dividido por ser frágil y costoso de mantener, especialmente a gran escala (registros duplicados, rarezas de caché, problemas de enrutamiento VPN).
  • Otros dicen que está bien para laboratorios pequeños o domésticos y que puede combinarse con hairpin NAT; el verdadero dolor está en las grandes configuraciones corporativas donde las zonas internas y públicas comparten el mismo nombre.
  • Algunos rechazan explícitamente usar DNS dividido, y prefieren zonas públicas únicas con IP internas o redes superpuestas.

ACME, DNS-01 y patrones de automatización

  • Fuerte preferencia por la validación DNS-01 frente a HTTP-01 para servicios internos.
  • Patrones comunes:
    • Usar un dominio público con APIs DNS para obtener certificados (a menudo wildcard), y luego apuntar los nombres a IPs internas.
    • Usar alias CNAME “_acme-challenge” para delegar DNS-01 a una zona/proveedor separado o a herramientas como acme-dns.
    • Servicios auxiliares ACME centrales o GitHub Actions que poseen las credenciales DNS y emiten certificados para hosts internos.
  • Interés en el próximo desafío DNS-PERSIST-01 para reducir la necesidad de actualizaciones DNS dinámicas, aunque la compatibilidad sigue siendo limitada.

CAs públicas vs CAs internas

  • Un bando: “Simplemente ejecuta una CA interna, firma certificados internos y confía en esa CA en tus dispositivos.” Se ve como la solución criptográfica limpia.
  • Contrapuntos:
    • Distribuir y gestionar anclas de confianza en sistemas operativos heterogéneos, lenguajes, contenedores y navegadores es una molestia.
    • Algunos argumentan que las CAs públicas (p. ej., Let’s Encrypt mediante DNS-01) son más simples operativamente, especialmente cuando no controlas por completo los dispositivos cliente.
    • Preocupaciones sobre límites de frecuencia y semántica de confianza (un certificado público solo prueba el control del dominio, no la identidad organizacional).

Certificados wildcard, registros CT y preocupaciones sobre hostnames/privacidad

  • A algunos les preocupa que los certificados públicos no wildcard expongan hostnames internos a través de los registros de Certificate Transparency; los certificados wildcard mitigan esto, pero centralizan el riesgo de la clave.
  • Otros no se preocupan por filtrar nombres genéricos de hosts domésticos, o dicen que la superficie de ataque importa más que la oscuridad.
  • Debate sobre si poner IPs internas y hostnames en DNS público es aceptable; algunos lo ven como inofensivo, otros lo rechazan por completo.

Almacenes de confianza del cliente y fragmentación de herramientas

  • Varios comentarios lamentan que configurar clientes para confiar en CAs internas es más difícil de lo que debería.
  • Diferentes ecosistemas usan distintos almacenes de confianza (SO, Java, navegadores, Node, Python/certifi, contenedores, snaps), lo que obliga a instalar la CA repetidamente.
  • Esta complejidad es una razón importante por la que algunos prefieren certificados ACME públicos incluso para servicios puramente internos.

Modelos de seguridad y patrones de acceso

  • Algunos defienden un estilo “BeyondCorp/zero trust”: mTLS, certificados de dispositivo y proxies inversos autenticados en lugar de VPN más DNS dividido.
  • Otros dependen de VPNs (WireGuard, Tailscale) más DNS interno, o de proxies inversos/balanceadores de carga centrales que terminan TLS y enrutan hacia servicios internos.
  • Sigue dividida la opinión sobre si usar certificados públicos para servicios internos de alto valor es apropiado; algunos lo llaman “bogus”, otros preguntan por qué sería perjudicial.