CURLOPT_SSLCERTTYPE(3)
okay bestie, this is CURLOPT_SSLCERTTYPE(3) from the Library Functions Manual β brought to you by libcurl, and it's all about the type of your client SSL certificate. π
π NAME π
CURLOPT_SSLCERTTYPE β type of client SSL certificate. Short, sweet, iconic.
πΈ SYNOPSIS πΈ
First you include the header, then you call the function like this:
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLCERTTYPE, char *type);
π DESCRIPTION π
Okay so: you pass a pointer to a null-terminated string as the parameter, and that string should be the format of your certificate. β¨
Supported formats are "PEM" and "DER", except with Schannel. OpenSSL and Schannel support "P12" for PKCS#12-encoded files. GnuTLS supports P12 starting with curl 8.11.0.
Your application does not have to keep the string around after setting this option β set it, and you're free. π«Ά
Using this option multiple times makes the last set string override the previous ones. Set it to NULL and it restores back to the internal default.
π DEFAULT π
"PEM" β that's the default, no cap.
π¦ PROTOCOLS π¦
This functionality affects all TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
This option works only with the following TLS backends: GnuTLS, OpenSSL, Schannel, mbedTLS and wolfSSL.
β¨ EXAMPLE β¨
Here's the little main character snippet, exactly as it should be:
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_SSLCERT, "client.pem");
curl_easy_setopt(curl, CURLOPT_SSLCERTTYPE, "PEM");
curl_easy_setopt(curl, CURLOPT_SSLKEY, "key.pem");
curl_easy_setopt(curl, CURLOPT_KEYPASSWD, "s3cret");
result = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
}
π AVAILABILITY π
Added in curl 7.9.3. A classic. π
π RETURN VALUE π
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).
π«Ά SEE ALSO π«Ά
π cute sign-off: source/version libcurl, date 2026-10-12, page CURLOPT_SSLCERTTYPE(3) β byeee, go set those cert types bestie π
β¨
π¦ where this page comes from
- fedora 44: libcurl-devel 8.18.0-14.fc44 Β· curl
- fedora 44: libcurl-devel 8.18.0-14.fc44 Β· curl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms