DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_SSL_VERIFYPEER(3)





CURLOPT_SSL_VERIFYPEER(3curl_easy_setopt optionCURLOPT_SSL_VERIFYPEER(3)



NAME

     CURLOPT_SSL_VERIFYPEER - verify the peer's SSL certificate


SYNOPSIS

     #include <curl/curl.h>

     CURLcode           curl_easy_setopt(CURL            *handle,
     CURLOPT_SSL_VERIFYPEER, long verify);


DESCRIPTION

     Pass a long as parameter to enable or disable.

     This option determines whether curl verifies  the  authenti-
     city of the peer's certificate. A value of 1 means curl ver-
     ifies; 0 (zero) means it doesn't.

     When negotiating a TLS or SSL connection, the server sends a
     certificate  indicating its identity.  Curl verifies whether
     the certificate is authentic, i.e. that you can  trust  that
     the server is who the certificate says it is.  This trust is
     based on a chain of digital signatures, rooted in certifica-
     tion  authority  (CA)  certificates you supply.  curl uses a
     default bundle of CA certificates  (the  path  for  that  is
     determined at build time) and you can specify alternate cer-
     tificates  with  the   CURLOPT_CAINFO(3)   option   or   the
     CURLOPT_CAPATH(3) option.

     When CURLOPT_SSL_VERIFYPEER(3) is enabled, and the verifica-
     tion  fails  to prove that the certificate is authentic, the
     connection fails.  When the option is zero, the peer  certi-
     ficate verification succeeds regardless.

     Authenticating the certificate is  not  enough  to  be  sure
     about the server. You typically also want to ensure that the
     server is the  server  you  mean  to  be  talking  to.   Use
     CURLOPT_SSL_VERIFYHOST(3)  for that. The check that the host
     name in the certificate is valid for the  host  name  you're
     connecting    to    is    done    independently    of    the
     CURLOPT_SSL_VERIFYPEER(3) option.

     WARNING: disabling verification of  the  certificate  allows
     bad  guys to man-in-the-middle the communication without you
     knowing it. Disabling verification makes  the  communication
     insecure. Just having encryption on a transfer is not enough
     as you cannot be sure that you are  communicating  with  the
     correct end-point.


DEFAULT

     By default, curl assumes a value of 1.


PROTOCOLS

     All TLS based protocols: HTTPS, FTPS,  IMAPS,  POP3S,  SMTPS

libcurl 7.58.0   Last change: February 09, 2017                 1


CURLOPT_SSL_VERIFYPEER(3curl_easy_setopt optionCURLOPT_SSL_VERIFYPEER(3)


     etc.


EXAMPLE

     CURL *curl = curl_easy_init();
     if(curl) {
       curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

       /* Set the default value: strict certificate check please */
       curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);

       curl_easy_perform(curl);
     }


AVAILABILITY

     If built TLS enabled.


RETURN VALUE

     Returns  CURLE_OK  if   the   option   is   supported,   and
     CURLE_UNKNOWN_OPTION if not.


SEE ALSO

     CURLOPT_SSL_VERIFYHOST(3),  CURLOPT_PROXY_SSL_VERIFYPEER(3),
     CURLOPT_PROXY_SSL_VERIFYHOST(3),

libcurl 7.58.0   Last change: February 09, 2017                 2


Man(1) output converted with man2html