ITADN

Dynamic http3 upstreams recieve untemplated sni

#7735OpenJanzenJohn 创建于 2026-05-17
bug :lady_beetle:help wanted :sos:
J
JanzenJohncommented
### Issue Details Warning ahead, i have used AI to write the nix files to reproduce this issue. But confirmed that is not hallucination slop. When i use a dynamic upstream using a wildcard host and http3 i recieve an untemplated sni on my host example caddyfile ``` *.mydomain.com mydomain { reverse_proxy { dynamic a { name {host} port 443 refresh 1m versions ipv6 } transport http { tls tls_server_name {host} versions 3 } } } ``` this results in requests arriving at the upstream to get the SNI="{http.request.host}" if i instead change the `tls_server_name {host}` to `tls_server_name git.mydomain.com` it works if i instead remove `versions 3` it works my upstream (also caddy) works on http3 as confirmed by `curl --http3-only git.mydomain.com` on the same host that my proxy caddy lives on this is also seen in the reproduction nix file output ``` ===== TSHARK (WORKING: H3 direct upstream (8081)) ===== Interface name: any Interface name: any Extension: server_name (len=19) name=app.test.local Type: server_name (0) Server Name Indication extension Server Name list length: 17 Server Name Type: host_name (0) Server Name length: 14 Server Name: app.test.local Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any Interface name: any ``` vs when calling via the wildcard dynamic http3 caddy reverse_proxy ``` ===== TSHARK (BROKEN: H3 dynamic A upstream (8080)) ===== Interface name: any Interface name: any Extension: server_name (len=24) name={http.request.host} Type: server_name (0) Server Name Indication extension Server Name list length: 22 Server Name Type: host_name (0) Server Name length: 19 Server Name: {http.request.host} Interface name: any ``` ### Assistance Disclosure AI used ### If AI was used, describe the extent to which it was used. I wrote the nix file to reproduce this using ai
2 条评论