←back to thread

62 points terminalbraid | 1 comments | | HN request time: 0.203s | source
Show context
infogulch ◴[] No.43563676[source]
Glad to see DNS validation from multiple perspectives, that's a scary attack vector.

I wonder if we can ever hope for CA/B to permit name constrained, short lifespan, automatically issued intermediate CAs, authenticated with something like a DNS-01 challenge. I've advocated for this before [1][2], but here's my pitch again:

I want to issue certificates from my own ICA for my homelab and office, to avoid ratelimits and hide hostnames for private services. I submit that issuing a 90-day ICA certificate with a name constraint that only allows it to issue certificates for the specific domain is no more dangerous than issuing a wildcard certificate, and offers enough utility that it should be considered seriously.

Objection 1: "Just use a wildcard cert." Wildcard certs are not sufficient here because they don't support nested wildcards, and — more importantly — they don't allow you to isolate hosts since any host can serve all subdomains. I'd rather not give some rando vibecoded nodejs app the same certificate that I use to handle auth.

Objection 2: "Just install a self-signed CA on all your devices." Installing and managing self-signed CAs on every device is tedious, error prone, and arguably more dangerous than issuing a 90-day name-constrained ICA.

Objection 3: "Aren't name constraints not supported by all clients?" On the contrary, they've had wide support for almost a decade, and for those just set the critical bit.

I understand this is not a "just ship it lmao" kind of change, but if we want this by 2030 planning for it needs to start happening now.

[1]: https://news.ycombinator.com/item?id=37537689

[2]: https://news.ycombinator.com/item?id=29808233

replies(4): >>43568221 #>>43568559 #>>43569375 #>>43590226 #
1. samgranieri ◴[] No.43590226[source]
Just use a dns server like technitium, bind, or powerdns and set up rfc2136 for the dns01 challenge.

If you’d like, turn on the dns recursion features too. Or string it together with a pi-hole/unbound/adguard home.

Change the DNS settings on your vlan.

Create something like .infogulch as your homelab.

Install step-ca to create an internal certificate authority. Their documentation is pretty straightforward to follow.

Yes, you have to install the public root ca cert in your device trust stores on any device that you want to resolve traffic to, and that’s obnoxious, but trust me, the payoff is worth it.

Install the rfc2136 plugin in the caddy web server, and ask caddy to use the dns01 challenge against your step-ca server and one of the dns servers I mentioned.

With caddy/step-ca/and one of those dns servers, caddy will just up and handle it all for you.

Done.

The payoff? You can mint whatever you want and it won’t have to be uploaded to a certificate transparency server!

Happy Homelabbing