| CURLOPT_PROXY_SSL_OPTIONS(3) | Introduction to Library Functions | CURLOPT_PROXY_SSL_OPTIONS(3) |
CURLOPT_PROXY_SSL_OPTIONS - HTTPS proxy SSL behavior options
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_OPTIONS,
long bitmask);
Pass a long with a bitmask to tell libcurl about specific SSL behaviors. Available bits:
WARNING: avoiding this work-around lessens the security, and by setting this option to 1 you ask for exactly that. This option is only supported for Secure Transport and OpenSSL.
Works with OpenSSL and its forks (LibreSSL, BoringSSL, etc). (Added in 7.68.0)
Works with Schannel if the user specified certificates to verify the peer. (Added in 8.15.0)
Works with wolfSSL on Windows, Linux (Debian, Ubuntu, Gentoo, Fedora, RHEL), macOS, Android and iOS (added in 8.3.0); with GnuTLS (added in 8.5.0) and with OpenSSL and its forks (LibreSSL, BoringSSL, etc) on Windows (Added in 7.71.0).
0
This functionality affects all TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
All TLS backends support this option.
int main(void)
{
CURL *curl = curl_easy_init();
if(curl) {
CURLcode result;
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
curl_easy_setopt(curl, CURLOPT_PROXY, "https://proxy.example");
/* weaken TLS only for use with silly proxies */
curl_easy_setopt(curl, CURLOPT_PROXY_SSL_OPTIONS,
CURLSSLOPT_ALLOW_BEAST | CURLSSLOPT_NO_REVOKE);
result = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
}
CURLSSLOPT_* macros became long types in 8.15.0, prior to this version a long cast was necessary when passed to curl_easy_setopt(3).
Added in curl 7.52.0
curl_easy_setopt(3) returns a CURLcode indicating success or error.
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see libcurl-errors(3).
CURLOPT_PROXY_SSLVERSION(3), CURLOPT_PROXY_SSL_CIPHER_LIST(3), CURLOPT_SSLVERSION(3), CURLOPT_SSL_CIPHER_LIST(3)
| 2026-03-19 | libcurl |