Skip to content

Domain fronting for subscription URLs#22

Open
useruserdev wants to merge 1 commit into
NodePassProject:mainfrom
useruserdev:pr/domain-fronting
Open

Domain fronting for subscription URLs#22
useruserdev wants to merge 1 commit into
NodePassProject:mainfrom
useruserdev:pr/domain-fronting

Conversation

@useruserdev

Copy link
Copy Markdown

Implements the domain-fronting scheme agreed in #21.

anywhere://add-proxy?host=<realHost>&link=<frontedURL>
  • TLS SNI = the host of link (front domain, also the connect target); HTTP Host: = host (the real CDN origin).
  • A dedicated URLSessionDelegate validates server trust against the front domain — no blind certificate acceptance.
  • host is persisted on the subscription (frontHost), so auto-refreshes keep fronting. Backward-compatible: no host ⇒ unchanged behavior, old persisted subscriptions decode fine.
  • link may be plain or base64-encoded. Works both as a deep link and pasted into the Add Proxy link field.
  • Parsing of anywhere://add-proxy (host/link split + base64) lives in one shared AnywhereProxyLink type, reused by the deep-link handler and the paste path.

Tested on device against a real Cloud-Run-fronted subscription.

Closes #21

@useruserdev useruserdev force-pushed the pr/domain-fronting branch from acf1e96 to 3ba4d94 Compare June 5, 2026 03:50
anywhere://add-proxy?host=<realHost>&link=<frontedURL> fetches a
subscription through a CDN front domain: TLS SNI is the link host
(front domain), HTTP Host is the real origin. A dedicated
URLSessionDelegate validates server trust against the front domain.
frontHost is persisted so refreshes keep fronting. link may be plain
or base64. Works via deep link and paste; no host => unchanged.

Closes NodePassProject#21
@useruserdev useruserdev force-pushed the pr/domain-fronting branch from 3ba4d94 to b774198 Compare June 5, 2026 03:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Domain fronting for subscription URLs (resolve-address + host) with base64 import

1 participant