append.d \
aws-sigv4.d \
basic.d \
+ ca-native.d \
cacert.d \
capath.d \
cert-status.d \
proto.d \
proxy-anyauth.d \
proxy-basic.d \
+ proxy-ca-native.d \
proxy-cacert.d \
proxy-capath.d \
proxy-cert-type.d \
--- /dev/null
+c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+SPDX-License-Identifier: curl
+Long: ca-native
+Help: Use CA certificates from the native OS
+Protocols: TLS
+Category: tls
+See-also: cacert capath insecure
+Example: --ca-native $URL
+Added: 8.2.0
+Multi: boolean
+---
+Tells curl to use the CA store from the native operating system to verify the
+peer. By default, curl will otherwise use a CA store provided in a single file
+or directory, but when using this option it will interface the operating
+system's own vault.
+
+This option only works for curl on Windows when built to use OpenSSL. When
+curl on Windows is built to use Schannel, this feature is implied and curl
+then only uses the native CA store.
--- /dev/null
+c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+SPDX-License-Identifier: curl
+Long: proxy-ca-native
+Help: Use CA certificates from the native OS for proxy
+Protocols: TLS
+Category: tls
+See-also: cacert capath insecure
+Example: --ca-native $URL
+Added: 8.2.0
+Multi: boolean
+---
+Tells curl to use the CA store from the native operating system to verify the
+HTTPS proxy. By default, curl will otherwise use a CA store provided in a
+single file or directory, but when using this option it will interface the
+operating system's own vault.
+
+This option only works for curl on Windows when built to use OpenSSL. When
+curl on Windows is built to use Schannel, this feature is implied and curl
+then only uses the native CA store.
--append (-a) 4.8
--aws-sigv4 7.75.0
--basic 7.10.6
+--ca-native 8.2.0
--cacert 7.5
--capath 7.9.8
--cert (-E) 5.0
--proxy (-x) 4.0
--proxy-anyauth 7.13.2
--proxy-basic 7.12.0
+--proxy-ca-native 8.2.0
--proxy-cacert 7.52.0
--proxy-capath 7.52.0
--proxy-cert 7.52.0
bool ssl_revoke_best_effort; /* ignore SSL revocation offline/missing
revocation list errors */
- bool native_ca_store; /* use the native os ca store */
+ bool native_ca_store; /* use the native OS CA store */
+ bool proxy_native_ca_store; /* use the native OS CA store for proxy */
bool ssl_auto_client_cert; /* automatically locate and use a client
certificate for authentication (Schannel) */
bool proxy_ssl_auto_client_cert; /* proxy version of ssl_auto_client_cert */
{"Ed", "key-type", ARG_STRING},
{"Ee", "pass", ARG_STRING},
{"Ef", "engine", ARG_STRING},
+ {"EG", "ca-native", ARG_BOOL},
+ {"EH", "proxy-ca-native", ARG_BOOL},
{"Eg", "capath", ARG_FILENAME},
{"Eh", "pubkey", ARG_STRING},
{"Ei", "hostpubmd5", ARG_STRING},
cleanarg(clearthis);
GetFileAndPassword(nextarg, &config->cert, &config->key_passwd);
break;
- case 'a': /* CA info PEM file */
+ case 'a': /* --cacert CA info PEM file */
GetStr(&config->cacert, nextarg);
break;
+ case 'G': /* --ca-native */
+ config->native_ca_store = toggle;
+ break;
+ case 'H': /* --proxy-ca-native */
+ config->proxy_native_ca_store = toggle;
+ break;
case 'b': /* cert file type */
GetStr(&config->cert_type, nextarg);
break;
{" --basic",
"Use HTTP Basic Authentication",
CURLHELP_AUTH},
+ {" --ca-native",
+ "Use CA certificates from the native OS",
+ CURLHELP_TLS},
{" --cacert <file>",
"CA certificate to verify peer against",
CURLHELP_TLS},
"Use HTTP 1.1",
CURLHELP_HTTP},
{" --http2",
- "Use HTTP 2",
+ "Use HTTP/2",
CURLHELP_HTTP},
{" --http2-prior-knowledge",
"Use HTTP 2 without HTTP/1.1 Upgrade",
{" --proxy-basic",
"Use Basic authentication on the proxy",
CURLHELP_PROXY | CURLHELP_AUTH},
+ {" --proxy-ca-native",
+ "Use CA certificates from the native OS for proxy",
+ CURLHELP_TLS},
{" --proxy-cacert <file>",
"CA certificate to verify peer against for proxy",
CURLHELP_PROXY | CURLHELP_TLS},
(config->proxy_ssl_allow_beast ?
CURLSSLOPT_ALLOW_BEAST : 0) |
(config->proxy_ssl_auto_client_cert ?
- CURLSSLOPT_AUTO_CLIENT_CERT : 0);
+ CURLSSLOPT_AUTO_CLIENT_CERT : 0) |
+ (config->proxy_native_ca_store ?
+ CURLSSLOPT_NATIVE_CA : 0);
if(mask)
my_setopt_bitmask(curl, CURLOPT_PROXY_SSL_OPTIONS, mask);