tailscale/net
Brad Fitzpatrick 7fac0175c0 cmd/derper, derp/derphttp: support, generate self-signed IP address certs
For people who can't use LetsEncrypt because it's banned.

Per https://github.com/tailscale/tailscale/issues/11776#issuecomment-2520955317

This does two things:

1) if you run derper with --certmode=manual and --hostname=$IP_ADDRESS
   we previously permitted, but now we also:
   * auto-generate the self-signed cert for you if it doesn't yet exist on disk
   * print out the derpmap configuration you need to use that
     self-signed cert

2) teaches derp/derphttp's derp dialer to verify the signature of
   self-signed TLS certs, if so declared in the existing
   DERPNode.CertName field, which previously existed for domain fronting,
   separating out the dial hostname from how certs are validates,
   so it's not overloaded much; that's what it was meant for.

Fixes #11776

Change-Id: Ie72d12f209416bb7e8325fe0838cd2c66342c5cf
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2025-03-07 05:36:55 -08:00
..
art all: fix new lint warnings from bumping staticcheck 2024-08-22 12:31:08 -07:00
bakedroots net/bakedroots: add LetsEncrypt ISRG Root X2 2025-01-21 17:47:55 -08:00
captivedetection derp/derphttp,ipn/localapi,net/captivedetection: add cache resistance to captive portal detection 2025-02-03 10:15:26 -08:00
connstats {net/connstats,wgengine/magicsock}: fix packet counting in connstats 2024-10-14 14:17:56 +02:00
dns net/dns: update to illarion/gonotify/v3 to fix a panic 2025-02-11 18:53:38 +00:00
dnscache net/dnscache: don't fall back to an IPv6 dial if we don't have IPv6 2024-10-02 10:41:08 -05:00
dnsfallback {control,net}: close idle connections of custom transports 2024-08-05 17:28:15 +01:00
flowtrack net/flowtrack: fix, test String method 2024-06-18 21:44:44 -07:00
ipset all: use iterators over slice views more 2024-11-11 13:22:34 -08:00
ktimeout various: disable MPTCP when setting TCP_USER_TIMEOUT sockopt (#15063) 2025-02-19 10:41:45 -08:00
memnet net/memnet: export the network name (#9111) 2023-08-28 11:43:51 -07:00
netaddr all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netcheck net/netcheck: remove unnecessary custom map clone function 2025-02-14 18:56:10 -08:00
neterror net/neterror, wgengine/magicsock: use UDP GSO and GRO on Linux (#7791) 2023-04-04 16:32:16 -07:00
netkernelconf ipn/{ipnlocal,localapi},net/netkernelconf,client/tailscale,cmd/containerboot: optionally enable UDP GRO forwarding for containers (#12410) 2024-06-10 19:19:03 +01:00
netknob all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netmon net/netmon: add extra panic guard around ParseRIB 2025-02-03 12:35:35 -08:00
netns net/netns: remove some logspam by avoiding logging parse errors due to unspecified addresses 2024-07-31 12:34:16 -06:00
netstat all: add test for package comments, fix, add comments as needed 2024-07-10 09:57:00 -07:00
netutil all: illumos/solaris userspace only support 2025-01-09 14:46:23 -08:00
packet feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
ping net/ping: fix ICMP echo code field to 0 2023-09-15 17:08:39 -07:00
portmapper net/portmapper: don't treat 0.0.0.0 as a valid IP 2024-10-01 16:11:47 -05:00
proxymux all: cleanup unused code, part 1 (#10661) 2023-12-20 14:50:30 -08:00
routetable net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2024-04-28 07:34:52 -07:00
socks5 net/socks5: optimize UDP relay 2024-11-01 15:47:52 -07:00
sockstats net/sockstats: prevent crash in setNetMon (#13985) 2024-10-31 12:00:34 -07:00
speedtest all: update copyright and license headers 2023-01-27 15:36:29 -08:00
stun ci: enable checklocks workflow for specific packages 2024-06-26 13:55:07 -04:00
stunserver all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
tcpinfo all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
tlsdial cmd/derper, derp/derphttp: support, generate self-signed IP address certs 2025-03-07 05:36:55 -08:00
tsaddr net/tsaddr: include test input in test failure output 2024-11-21 08:32:38 -08:00
tsdial all: use iterators over slice views more 2024-11-11 13:22:34 -08:00
tshttpproxy all: fix golangci-lint errors 2025-01-07 13:05:37 -08:00
tstun feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
wsconn go.{mod,sum}: migrate from nhooyr.io/websocket to github.com/coder/websocket 2024-08-14 21:23:49 -07:00