Skip to content

libtailscale,android: use ExtraRootCAs for user-installed CA certific…#775

Merged
bradfitz merged 1 commit intotailscale:mainfrom
LoganRupe:android-extraroots-ca-certs
Apr 8, 2026
Merged

libtailscale,android: use ExtraRootCAs for user-installed CA certific…#775
bradfitz merged 1 commit intotailscale:mainfrom
LoganRupe:android-extraroots-ca-certs

Conversation

@LoganRupe
Copy link
Copy Markdown
Contributor

Replaces #757 with a cleaner in-memory approach. Instead of writing user-installed CA certs to disk and setting SSL_CERT_DIR, read them from the Android KeyStore via GetUserCACertsPEM(), parse into an *x509.CertPool, and assign to sys.ExtraRootCAs on tsd.System.

Depends on tailscale/tailscale#19280 landing first — go.mod will need a bump to a commit that includes it.

Closes #757
Updates tailscale/tailscale#8085

@bradfitz
Copy link
Copy Markdown
Member

bradfitz commented Apr 8, 2026

@LoganRupe, go ahead and rebase this PR against the new go.mod and amend the commit (squash down into one commit). Thanks!

@bradfitz bradfitz self-requested a review April 8, 2026 01:12
…ates

Bridge user-installed Android CA certificates to Go's TLS stack
using the in-memory ExtraRootCAs cert pool on tsd.System.

Depends on tailscale/tailscale#19280.
Fixes tailscale/tailscale#8085

Signed-off-by: Logan Rupe <[email protected]>
@LoganRupe LoganRupe force-pushed the android-extraroots-ca-certs branch from faa9712 to cc36444 Compare April 8, 2026 01:58
@LoganRupe
Copy link
Copy Markdown
Contributor Author

@LoganRupe, go ahead and rebase this PR against the new go.mod and amend the commit (squash down into one commit). Thanks!

done.

@LoganRupe
Copy link
Copy Markdown
Contributor Author

CI failed because Go 1.26.2 isn't available on the download server yet. Should pass on re-run once it's published

@bradfitz
Copy link
Copy Markdown
Member

bradfitz commented Apr 8, 2026

Hm, this repo is supposed to only be using our https://github.com/tailscale/go/ but I guess something bitrot and it's trying to use official upstream binaries.

@LoganRupe
Copy link
Copy Markdown
Contributor Author

Hm, this repo is supposed to only be using our https://github.com/tailscale/go/ but I guess something bitrot and it's trying to use official upstream binaries.

Makes sense — the go 1.26.2 directive is satisfied by the custom toolchain locally via go, but the CI's actions/setup-go step is hitting the upstream download server. Not something from my change, happy to help fix the workflow if needed.

@LoganRupe
Copy link
Copy Markdown
Contributor Author

The go 1.26.1 → 1.26.2 bump in go.mod triggered this — actions/setup-go tries to fetch official upstream Go but 1.26.2 only exists in tailscale/go. The actual check step already uses go so the setup-go step could be removed or pointed at the fork. Happy to fix the workflow in this PR or a follow-up if you'd prefer.

@bradfitz bradfitz merged commit e7fca1a into tailscale:main Apr 8, 2026
4 of 6 checks passed
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.

2 participants