Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_CERTINFO(3)	    Library Functions Manual	     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 gatherer.
     With this enabled, libcurl extracts 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
     This functionality affects all TLS based  protocols:  HTTPS,  FTPS,  IMAPS,
     POP3S, SMTPS etc.

     This  option  works  only with the following TLS backends: GnuTLS, OpenSSL,
     Rustls and Schannel

EXAMPLE
     int main(void)
     {
       CURL *curl = curl_easy_init();
       if(curl) {
	 CURLcode result;
	 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);

	 result = curl_easy_perform(curl);

	 if(result == CURLE_OK) {
	   struct curl_certinfo *ci;
	   result = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &ci);

	   if(result == CURLE_OK) {
	     int i;
	     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);
       }
     }

HISTORY
     Schannel support added in 7.50.0. mbedTLS support added in 8.9.0.

AVAILABILITY
     Added in curl 7.19.1

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
     CURLINFO_CAINFO(3),    CURLINFO_CAPATH(3),    CURLINFO_CERTINFO(3),    CUR-
     LOPT_CAINFO(3), CURLOPT_SSL_VERIFYPEER(3)

libcurl 			   2026-06-11		     CURLOPT_CERTINFO(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_CERTINFO&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help