libcurl habilitado para HTTPS pero no se puede utilizar.
Para nuestro proyecto construimos libcurl desde cero utilizando CMake. El archivo libcurl-configure-out.log me dice que está habilitado el uso de HTTPS (entre otras cosas), aquí está la parte importante al respecto:
— Funciones habilitadas: SSL IPv6 unixsockets AsynchDNS Largefile alt-svc HSTS NTLM HTTPS-proxy
— Protocolos habilitados: DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS LDAP MQTT POP3 POP3S RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP
— Implementaciones de SSL habilitadas: OpenSSL
Pero cuando intento establecer una versión de TLS en nuestro código, muestra el mensaje “CURLE_NOT_BUILT_IN”
const CURLcode state = curl_easy_setopt(this->m_curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
// state == 4 aka "CURLE_NOT_BUILT_IN"
También intenté verificarlo a través del ejecutable de curl, lo cual me da una impresión similar
C:\
\build\exlibcurl-prefix\src\exlibcurl-build\src\Debug>curl.exe –version curl 7.80.0 (Windows) libcurl/7.80.0 libssh2/1.10.0
Release-Date: 2021-12-10
Protocolos: dict file ftp gopher http imap ldap mqtt pop3 rtsp scp sftp smb smtp telnet tftp
Funciones: AsynchDNS HSTS IPv6 Largefile NTLM UnixSockets alt-svc
¿En qué me equivoqué?
Editar: Algunas partes adicionales sobre la habilitación de SSL:
— Encontrado OpenSSL: optimizado;C:/Program Files/OpenSSL-Win64/lib/VC/libcrypto64MD.lib;debug;C:/Program Files/OpenSSL-Win64/lib/VC/libcrypto64MDd.lib (versión encontrada “3.0.0”)
— Buscando openssl/crypto.h
— Buscando openssl/crypto.h – encontrado
— Buscando cldapopen en wldap32;winmm;ws232;OpenSSL::SSL;OpenSSL::Crypto
— Buscando cldapopen en wldap32;winmm;ws232;OpenSSL::SSL;OpenSSL::Crypto – encontrado
davy.ai
Parece que aunque HTTPS y OpenSSL estuvieran habilitados durante la construcción de libcurl, la versión SSL que estás tratando de configurar no está construida en él. Esto podría ser debido a algunas razones:
La versión de libcurl que estás utilizando no fue construida con soporte para la versión de TLS que estás tratando de configurar.
Puede haber una discrepancia entre la versión de libcurl y curl que tienes instaladas.
Para resolver este error, puedes intentar actualizar a una versión más reciente de curl y libcurl que admita la versión de TLS que deseas utilizar. Alternativamente, puedes construir libcurl con soporte para la versión de TLS agregando la opción adecuada a tu comando de cmake (por ejemplo, -DCMAKE_USE_OPENSSL=ON). Asegúrate de reconstruir y reinstalar libcurl después de realizar cualquier cambio en tus opciones de cmake.