feat(client): verify server certificates against the system root store (#5546)

transport.tls.trustedCaFile is installed as RootCAs, and omitting it sets
InsecureSkipVerify, so system-root verification cannot be selected directly.
Add an opt-in transport.tls.useSystemRoots that enables certificate
verification with RootCAs nil when no trusted CA file is set, allowing Go to
use system roots and native verification on macOS and Windows. Defaults are
unchanged.
This commit is contained in:
Alexey Sviridov
2026-10-18 14:08:05 +08:00
committed by GitHub
parent 954f918d0c
commit 7441443134
8 changed files with 176 additions and 6 deletions
+4
View File
@@ -131,6 +131,10 @@ transport.tls.enable = true
# transport.tls.trustedCaFile = "ca.crt"
# transport.tls.serverName = "example.com"
# If useSystemRoots is true and trustedCaFile is not set, frpc verifies the server certificate
# against the host's root store.
# transport.tls.useSystemRoots = false
# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the
# first custom byte when tls is enabled.
# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default.