---
name: "CURLOPT_PROXY_SSLCERTTYPE"
section: "3"
platform: "macos"
package: "curl"
version: "166.0.0.0.1"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/CURLOPT_PROXY_SSLCERTTYPE"
---

# CURLOPT\_PROXY\_SSLCERTTYPE(3)

type of the proxy client SSL certificate

## NAME

CURLOPT\_PROXY\_SSLCERTTYPE - type of the proxy client SSL certificate

## SYNOPSIS

```
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSLCERTTYPE, char *type);
```

## DESCRIPTION

Pass a pointer to a null-terminated string as parameter. The string should be the format of your client certificate used when connecting to an HTTPS proxy.

Supported formats are "PEM" and "DER", except with Secure Transport or Schannel. OpenSSL (versions 0.9.3 and later), Secure Transport (on iOS 5 or later, or OS X 10.7 or later) and Schannel support "P12" for PKCS#12-encoded files.

The application does not have to keep the string around after setting this option.

## DEFAULT

"PEM"

## PROTOCOLS

All

## EXAMPLE

```
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode res;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
    curl_easy_setopt(curl, CURLOPT_PROXY, "https://proxy");
    curl_easy_setopt(curl, CURLOPT_PROXY_SSLCERT, "client.pem");
    curl_easy_setopt(curl, CURLOPT_PROXY_SSLCERTTYPE, "PEM");
    curl_easy_setopt(curl, CURLOPT_PROXY_SSLKEY, "key.pem");
    curl_easy_setopt(curl, CURLOPT_PROXY_KEYPASSWD, "s3cret");
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}
```

## AVAILABILITY

Added in 7.52.0

If built TLS enabled.

## RETURN VALUE

Returns CURLE\_OK if TLS is supported, CURLE\_UNKNOWN\_OPTION if not, or CURLE\_OUT\_OF\_MEMORY if there was insufficient heap space.

## SEE ALSO

[**CURLOPT\_PROXY\_SSLCERT**(3)](/CURLOPT_PROXY_SSLCERT/3.md), [**CURLOPT\_PROXY\_SSLKEY**(3)](/CURLOPT_PROXY_SSLKEY/3.md), [**CURLOPT\_SSLCERTTYPE**(3)](/CURLOPT_SSLCERTTYPE/3.md)
