https://tools.ietf.org/html/rfc6066#section-3
> "HostName" contains the fully qualified DNS hostname of the server, as understood by the client. The hostname is represented as a byte string using ASCII encoding without a trailing dot. †
So, when your web browser sends the hostname "news.ycombinator.com." that's not an "absolute hostname" that's just an error. Maybe you can demand that web browsers stop doing that, but they'll likely tell you they don't care, and you should stop writing URLs incorrectly.
† The trailing dot rule was in every version, but earliest sources talked about using UTF8 because they pre-date the insight that all this backend (ie not human-facing) stuff can use A-labels which are ASCII and avoid any complicated Unicode problems. This version just says to use ASCII here.
So while the SNI error is clearly on browsers (and bugs have been already filed), the Host header issue is clearly on caddy (which caddy sees as wontfix)
That said, you can just make a site block with that host label and Caddy will handle it just fine. You just need to explicitly ask Caddy for it.
example.com, example.com. {
...
}That's what mholt said as well: It's the site maintainers task to fix it. Yet caddyserver.com still doesn’t support it.
> you're the only person I've ever seen complain about this
I didn’t actually find the bug myself, someone else did first, but it’s something that’s been annoying me for quite a bit.
> You bring it up on every thread on HN that ever has a mention of Caddy. It's very annoying.
It’s definitely a red flag something people should know before using caddy, as it’s a sign caddy will also interpret other specs funnily.
Right, because Matt (and the large majority of everyone on the internet) doesn't care.
> It’s definitely a red flag something people should know before using caddy, as it’s a sign caddy will also interpret other specs funnily.
Pure FUD. It's such a non-issue. As you've been told many times.
If it's such a non-issue, why did matt say he wouldn't accept a PR that'd fix this?
This is all from four years ago. And kuschku hasn't taken no for an answer after all this time. It's frustrating and annoying to hear their complaints on every HN thread since.
I agree with you the thread is shitty. I'm just hoping being direct will end the trolling.
If you want to learn why supporting FQDNs is important, you can actually read the issue and PR on the traefik repo where they chose to add support for this:
https://github.com/traefik/traefik/issues/4622 https://github.com/traefik/traefik/pull/4763
They just accepted the issue, and fixed it. Super easy, no 4 years of "no one needs this" "no you're wrong" "the specs are wrong" "you're trolling"
You make it out to be a simple change, but it's really not. And the arguments for making any changes are not compelling enough to warrant the risks involved. Compliance for the sake of compliance is completely pointless.
That’s why I’m comparing it to traefik, which can also automate TLS management, in the exact same way (even using the same libraries for most of the functionality, they’re after all both go webservers).
> And the arguments for making any changes are not compelling enough to warrant the risks involved
Why is it that you think you know better than the maintainers of e.g. traefik? It’s not like this is legacy functionality they kept around just for the sake of it, they added it in 2019 because there’s demand for it, today.
You're wrong. Caddy uses a superior library that's been more stress-tested at scale in production: https://github.com/caddyserver/certmagic and https://github.com/mholt/acmez - neither of which lego uses. Bugs and limitations in lego caused severe problems for several of our larger customers.
Actually no, not anymore.
https://github.com/caddyserver/caddy/pull/3621
> because there’s demand for it, today
We've only seen the demand from you. Nobody else. One individual isn't enough demand.
At this point it's just a game of wasting other people's time.
And I can’t remotely telepathically make all caddy users switch to nginx. So as long as a single HTTP server runs a version of caddy with this bug, I’ve got extra work to do, because the caddy people are wasting my time