syncthing/lib/config
Jakob Borg 718b1ce2b7
chore(discovery,upgrade): use regular TLS certificate verification (#9673)
This changes the two remaining instances where we use insecure HTTPS to
use standard HTTPS certificate verification.

When we introduced these things, almost a decade ago, HTTPS certificates
were expensive and annoying to get, much of the web was still HTTP, and
many devices seemed to not have up-to-date CA bundles.

Nowadays _all_ of the web is HTTPS and I'm skeptical that any device can
work well without understanding LetsEncrypt certificates in particular.

Our current discovery servers use hardcoded certificates which has
several issues:
- Not great for security if it leaks as there is no way to rotate it
- Not great for infrastructure flexibility as we can't use many load
balancer or TLS termination services
- The certificate is a very oddball ECDSA-SHA384 type certificate which
has higher CPU cost than a more regular certificate, which has real
effects on our infrastructure

Using normal TLS certificates here improves these things.

I expect there will be some very few devices out there for which this
doesn't work. For the foreseeable future they can simply change the
config to use the old URLs and parameters -- it'll be years before we
can retire those entirely.

For the upgrade client this simply seems like better hygiene. While our
releases are signed anyway, protecting the metadata exchange is _better_
and, again, I doubt many clients will fail this today.
2024-09-11 09:29:19 +02:00
..
mocks lib, gui: Default ignores for new folders (fixes #7428) (#7530) 2022-01-13 23:38:21 +01:00
testdata lib/config, gui: Disallow some options in combination with "untrusted" (fixes #8920) (#8921) 2023-06-14 09:24:31 +02:00
authmode.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
authmode.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
blockpullorder.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
blockpullorder.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
commit_test.go all: Remove unused method receivers (#8462) 2022-07-28 17:32:45 +02:00
config_test.go lib/config: Accept pre-hashed password (fixes #9123) (#9124) 2023-09-24 19:23:49 +02:00
config.go chore(discovery,upgrade): use regular TLS certificate verification (#9673) 2024-09-11 09:29:19 +02:00
config.pb.go all: Support syncing ownership (fixes #1329) (#8434) 2022-07-26 08:24:58 +02:00
debug.go all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
deviceconfiguration.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
deviceconfiguration.pb.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
folderconfiguration.go lib/upgrade: Send OS version header to upgrade server (#9663) 2024-08-28 08:31:10 +02:00
folderconfiguration.pb.go lib/config, lib/watchaggregator: Add config for max FS watcher delay (#9558) 2024-05-23 16:21:00 +02:00
foldertype.go all: Add untrusted folders behind feature flag (ref #62) (#7055) 2020-11-09 15:33:32 +01:00
foldertype.pb.go all: Add untrusted folders behind feature flag (ref #62) (#7055) 2020-11-09 15:33:32 +01:00
guiconfiguration.go Hide log out button when auth is not enabled (#9158) 2023-10-15 14:10:41 +02:00
guiconfiguration.pb.go Add HTML login form (fixes #4137) (#8757) 2023-10-06 13:00:58 +02:00
ldapconfiguration.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
ldapconfiguration.pb.go all: Regenerate proto (#7696) 2021-05-19 13:30:20 +02:00
ldaptransport.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
ldaptransport.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
migrations_test.go lib/api: Add /rest/config endpoint (fixes #6540) (#7001) 2020-10-22 19:54:35 +02:00
migrations.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
observed.pb.go build: Update all dependencies (#7968) 2021-09-26 12:08:23 +02:00
optionsconfiguration.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
optionsconfiguration.pb.go lib/config, lib/connections: Configurable protocol priority (ref #8626) (#8868) 2023-04-16 14:54:28 +02:00
pullorder.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
pullorder.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
size_test.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
size.go all: Fix check for empty string (#8456) 2022-07-28 16:51:03 +02:00
size.pb.go all: Regenerate proto (#7696) 2021-05-19 13:30:20 +02:00
tuning_test.go Implement database abstraction, error checking (ref #5907) (#6107) 2019-11-29 09:11:52 +01:00
tuning.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
tuning.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
versioningconfiguration.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
versioningconfiguration.pb.go all: Regenerate proto (#7696) 2021-05-19 13:30:20 +02:00
wrapper.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00