Files
curl/docs
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: 22652a5a4c #14582
Ref: eefd03c572 #18703

Closes #18279
2026-01-17 19:18:52 +01:00
..
2026-01-15 13:06:13 +01:00
2026-01-15 13:06:13 +01:00
2025-12-11 11:42:28 +01:00
2025-09-23 00:34:46 +02:00
2025-07-01 22:53:04 +02:00
2024-08-12 23:35:56 +02:00
2026-01-15 13:06:13 +01:00
2025-07-12 08:59:44 +02:00
2025-12-09 00:19:10 +01:00
2025-12-09 00:19:10 +01:00
2025-12-12 04:18:48 +01:00
2024-08-23 08:46:09 +02:00
2026-01-15 17:49:29 +01:00
2026-01-15 13:06:13 +01:00
2025-12-16 23:33:54 +01:00
2026-01-15 13:06:13 +01:00
2026-01-15 13:06:13 +01:00
2025-09-23 00:34:46 +02:00
2025-09-23 00:34:46 +02:00
2025-12-08 17:28:43 +01:00
2026-01-15 13:06:13 +01:00
2026-01-15 13:06:13 +01:00
2025-12-05 23:41:41 +01:00
2026-01-15 13:06:13 +01:00
2026-01-15 13:06:13 +01:00
2024-06-27 13:33:30 +02:00
2026-01-15 13:06:13 +01:00
2025-09-23 00:34:46 +02:00
2025-12-12 04:18:48 +01:00
2026-01-15 13:06:13 +01:00
2026-01-07 07:56:22 +01:00
2025-11-05 14:12:23 +01:00
2026-01-15 13:06:13 +01:00
2026-01-06 10:12:31 +01:00

curl logo

Documentation

You find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.

If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.