CURL en Windows. SSL

(1/2) > >>

Usuario887:
Tengo este codigo:

Código
#include <stdio.h>
#include "curl/include/curl/curl.h"
 
size_t dataSize=0;
size_t curlWriteFunction(void* ptr, size_t size/*always==1*/,
                        size_t nmemb, void* userdata)
{
   char** stringToWrite=(char**)userdata;
   const char* input=(const char*)ptr;
   if(nmemb==0) return 0;
   if(!*stringToWrite)
       *stringToWrite=malloc(nmemb+1);
   else
       *stringToWrite=realloc(*stringToWrite, dataSize+nmemb+1);
   memcpy(*stringToWrite+dataSize, input, nmemb);
   dataSize+=nmemb;
   (*stringToWrite)[dataSize]='\0';
   return nmemb;
}
 
int main()
{
   char* data=0;
   CURL*const curl=curl_easy_init();
   if(!curl)
   {
       fprintf(stderr, "error: Initialization");
       return 1;
   }
   curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
   curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data);
   curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &curlWriteFunction);
   if(curl_easy_perform(curl)!=CURLE_OK)
   {
       fprintf(stderr, "error: get web page\n");
       return 1;
   }
   curl_easy_cleanup(curl);
 
   if(!data)
   {
       fprintf(stderr, "error: Got no data\n");
       return 1;
   }
 
   printf("Page data:\n\n%s\n", data);
   free(data);
}
 

En Linux, al especificar https: en el URL, no hace ninguna diferencia, sin embargo cuando lo hago en Windows falla la funcion curl_easy_perform. ¿Alguien tiene idea de por que?

Gracias y saludos,
marax.

engel lex:
que error te da? puede ser que te haga falta openssl o algo similar

Usuario887:
Hola, gracias por responder.

Citar

C:\Users\Programming\Desktop\CURL test>main https://www.google.com
Failed to get web page: SSL peer certificate or SSH remote key was not OK

C:\Users\Programming\Desktop\CURL test>

engel lex:
pareciera un error con el certificado ssl el asunto es que no se si remoto o local, estás tras proxy, vpn o similar?

intenta con la opcion CURLOPT_VERBOSE activada a ver si te da más info que sea util para determinar el problema

Usuario887:
Citar

C:\Users\Programming\Desktop\CURL test>main https://www.google.com
*   Trying 142.250.185.4:443...
* Connected to www.google.com (142.250.185.4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
Failed to get web page: SSL peer certificate or SSH remote key was not OK

C:\Users\Programming\Desktop\CURL test>

¿Que es "Certificado del emisor"?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente