CURLOPT_PROXY_CAPATH − specify directory holding proxy CA certificates
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_CAPATH, char *capath);
Pass a char * to a null-terminated string naming a directory holding multiple CA certificates to verify the HTTPS proxy with. If libcurl is built against OpenSSL, the certificate directory must be prepared using the openssl c_rehash utility. This makes sense only when CURLOPT_PROXY_SSL_VERIFYPEER(3) is enabled (which it is by default).
The application does not have to keep the string around after setting this option.
Everything used over an HTTPS proxy
CURL *curl =
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
/* using an HTTPS proxy */
curl_easy_setopt(curl, CURLOPT_PROXY, "https://localhost:443");
curl_easy_setopt(curl, CURLOPT_PROXY_CAPATH, "/etc/cert-dir");
ret = curl_easy_perform(curl);
Added in 7.52.0
This option is supported by the OpenSSL, GnuTLS, and mbedTLS (since 7.56.0) backends. The NSS backend provides the option only for backward compatibility.
CURLE_OK if supported; or an error such as:
CURLE_NOT_BUILT_IN - Not supported by the SSL backend
CURLOPT_PROXY_CAINFO(3), CURLOPT_STDERR(3), CURLOPT_DEBUGFUNCTION(3),