Commit b7d144e
committed
fix(dstack-ingress): reject tls-alpn-01 wildcards at startup, not per pass
A wildcard under tls-alpn-01 can never succeed -- RFC 8737 forbids the
challenge for wildcard identifiers -- so it is a configuration error, not
a runtime failure. tlsalpn.sh did reject it, but only once the
certificate loop reached that domain, by which point the container had
generated a placeholder certificate for a name that will never get a real
one, started haproxy serving it, and settled into retrying an
unsatisfiable config every 60s to 1800s forever.
Check it alongside the other startup validation instead. A wildcard
anywhere in DOMAIN/DOMAINS now fails the container immediately, naming
the offending entry.
This is deliberately fatal for the whole container rather than skipping
the one domain. Mixed configs did already contain the damage -- the other
domains were issued normally -- but the operator was left with a
self-signed certificate served for the wildcard indefinitely and a
permanently failing loop, which reads as a TLS bug rather than the config
error it is.
The per-domain checks in tlsalpn.sh and legoman.py stay as defence in
depth. dns-01 wildcards are unaffected.1 parent 4d54843 commit b7d144e
2 files changed
Lines changed: 21 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
325 | 325 | | |
326 | 326 | | |
327 | 327 | | |
328 | | - | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
329 | 332 | | |
330 | 333 | | |
331 | 334 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
76 | 93 | | |
77 | 94 | | |
78 | 95 | | |
| |||
0 commit comments