CURL en Windows. SSL
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
[#] Página Siguiente