Fix ERR_TLS_CERT_ALTNAME_INVALID when using Next.js handler with Bun
#148
+20
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes
ERR_TLS_CERT_ALTNAME_INVALIDwhen using Next.js with Bun.When running Next.js under Bun, proxying via a catch-all route failed with
ERR_TLS_CERT_ALTNAME_INVALID. Bun's TLS validation is stricter than Node's and will reject requests when the Host header does not match the target URL's hostname.Root cause:
Our proxy forwarded the original request headers including
host: localhost:3000(from local dev server) to the upstream Convex URL. This mismatchedhostheader triggered Bun's TLS altname check.Example of forwarded headers prior to this change (from a local dev server):
This PR addresses this issue and removes
hostheader before forwarding to Convex and lets fetch set the correcthostbased on the Convex URL.Notes:
Other hop-by-hop headers could also be stripped but they have correct values for forwarded requests. They do not cause any issues though.
Links:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.