Repository navigation
Conversation
Every egress build generated a fresh self-signed certificate per process, so a consumer could never verify the egress against its egress_ca / egress_server_name options. Without that, a donor can impersonate the egress and read anything sent inside QUIC. With TLS_CERT_FILE and TLS_KEY_FILE set (the names the private-swarm example already uses), the egress presents that certificate. Without them it keeps the per-process self-signed certificate and its warning. The three egress builds share this instead of each duplicating it. Part of getlantern/engineering#3702. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
This was referenced Oct 7, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
context
egress_caandegress_server_name. But every egress build callsGenerateSelfSignedTLSConfig(true), a fresh certificate per process, so no CA can vouch for it and production can't turn verification onsummary
TLSConfigFromEnv(tls.go):TLS_CERT_FILEandTLS_KEY_FILEset (the namesexamples/private-swarm/egress-serveralready uses), the egress presents that certificatesing-box,httpandsocks5builds use it, replacing three copies of the banner and fallbackclientAuthextended key usage and a SAN equal to the track'segress_server_nametests
tls_test.go, using a consumer configured like lantern-box's verifying path (
RequireAndVerifyClientCert,ClientCAs, SAN check), with the egress as TLS client as in production:go test -race ./egress/... ./common/...passesrollout (not in this PR)
clientAuth, SAN = chosenegress_server_name); put the cert and key on egress hosts, e.g. from Vault in lantern-cloud's egress deploy, and set the two env varsegress_caandegress_server_nameon the unbounded track. Current clients already honour those options, so setting them before the egress presents the cert breaks every unbounded connection🤖 Generated with Claude Code