Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_CERTINFO (3)

Name

CURLOPT_CERTINFO - request SSL certificate information

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CERTINFO, long certinfo);

Description

CURLOPT_CERTINFO(3)        curl_easy_setopt options        CURLOPT_CERTINFO(3)



NAME
       CURLOPT_CERTINFO - request SSL certificate information

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CERTINFO, long certinfo);

DESCRIPTION
       Pass  a  long set to 1 to enable libcurl's certificate chain info gath-
       erer. With this enabled, libcurl will extract lots of  information  and
       data  about  the  certificates in the certificate chain used in the SSL
       connection. This data may then be  retrieved  after  a  transfer  using
       curl_easy_getinfo(3) and its option CURLINFO_CERTINFO(3).

DEFAULT
       0

PROTOCOLS
       All TLS-based

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

         /* connect to any HTTPS site, trusted or not */
         curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
         curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);

         curl_easy_setopt(curl, CURLOPT_CERTINFO, 1L);

         res = curl_easy_perform(curl);

         if (!res) {
           struct curl_certinfo *ci;
           res = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &ci);

           if (!res) {
             printf("%d certs!\n", ci->num_of_certs);

             for(i = 0; i < ci->num_of_certs; i++) {
               struct curl_slist *slist;

               for(slist = ci->certinfo[i]; slist; slist = slist->next)
                 printf("%s\n", slist->data);
             }
           }
         }
         curl_easy_cleanup(curl);
       }

AVAILABILITY
       This  option  is supported by the OpenSSL, GnuTLS, Schannel, NSS, GSKit
       and Secure Transport backends. Schannel support added in 7.50.0. Secure
       Transport support added in 7.79.0.

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


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       CURLOPT_CAINFO(3), CURLOPT_SSL_VERIFYPEER(3),



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source      was      downloaded       from        https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                 November 26, 2021           CURLOPT_CERTINFO(3)