Viktor Szakats 1730407b74
windows: add build option to use the native CA store
With the same semantics as Apple SecTrust, in both libcurl and the curl
tool, when using non-Schannel TLS backends. In practice it means that
it makes TLS work without manually or implicitly configuring a CA bundle
`.crt` file, such as `curl-ca-bundle.crt`.

To enable:
- autotools: `--enable-ca-native`
- cmake: `-DCURL_CA_NATIVE=ON`
- CPPFLAGS: `-DCURL_CA_NATIVE`

When enabled:
- enables `CURLSSLOPT_NATIVE_CA` (libcurl) / `--ca-native`
  and `--proxy-ca-native` (curl tool) options by default.
- unsafe search for an on-disk CA bundle gets disabled by default.
  Equivalent to `--disable-ca-search` with autotools,
  `-DCURL_DISABLE_CA_SEARCH=ON` with CMake.
- build-time detection of CA bundle and CA path gets disabled. As with
  Apple SecTrust. This was already the default for Windows.
- native CA can be disabled at run-time with the `--no-ca-native`
  and/or `--no-proxy-ca-native` command-line options.

Rationale: This build option:
- has a repeat and active interest from packagers and users.
- helps integrating curl with Windows for those who need this.
- it also applies to macOS: #17525
  Shipped in curl 8.17.0.
- makes it trivial to use custom certs configured on the OS.
- frees applications/packagers/users from the task of securely
  distributing, and keeping up-to-date, a CA bundle.
- frees potentially many curl tool from configuring a CA bundle manually
  to access HTTPS (and other TLS) URLs. This is traditionally difficult
  on Windows because there is no concept of a universal, protected,
  non-world-writable, location on the file system to securely store
  a CA bundle.
- allows using modern features regardless of Windows version. Some of
  these features are not supported with Schannel (e.g. HTTP/3, ECH) on
  any Windows version.
- is necessary for HTTP/3 builds, where bootstrapping a CA bundle is not
  possible with Schannel, because MultiSSL is not an option, and HTTP/3
  is not supported with Schannel.

Ref: #16181 (previous attempt)
Ref: https://github.com/curl/curl/discussions/9348
Ref: https://github.com/curl/curl/issues/9350
Ref: https://github.com/curl/curl/pull/13111
Ref: https://github.com/microsoft/vcpkg/pull/46459#issuecomment-3162068701
Ref: 22652a5a4cb6a4cc1c0f4ff3ebc4f9768f6663cd #14582
Ref: eefd03c572996e5de4dec4fe295ad6f103e0eefc #18703

Closes #18279
2026-01-17 19:18:52 +01:00
..
2026-01-15 13:06:13 +01:00
2026-01-17 11:45:18 +01:00
2025-12-02 16:52:54 +01:00
2026-01-17 11:45:18 +01:00
2026-01-17 11:45:18 +01:00
2026-01-17 11:45:18 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-12 04:18:48 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-21 02:16:34 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-02 16:52:54 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-02 16:52:54 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-17 11:45:18 +01:00
2026-01-17 11:45:18 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-17 11:45:18 +01:00
2026-01-17 11:45:18 +01:00
2026-01-17 11:45:18 +01:00
2026-01-17 11:45:18 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-17 11:41:49 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-03 14:50:16 +01:00
2025-12-26 22:06:09 +01:00
2025-10-07 10:55:31 +02:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2026-01-15 13:06:13 +01:00
2026-01-15 13:06:13 +01:00
2026-01-13 09:46:49 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-05 23:16:04 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-13 21:15:36 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-16 16:42:31 +01:00
2026-01-01 12:43:59 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-16 16:42:31 +01:00
2025-12-29 22:44:34 +01:00
2025-12-29 22:44:34 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-03 14:50:16 +01:00
2025-12-12 04:18:48 +01:00
2025-12-03 14:50:16 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-16 16:43:43 +01:00
2026-01-16 16:43:43 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2025-12-26 22:06:09 +01:00
2026-01-15 13:06:13 +01:00
2025-12-03 14:50:16 +01:00