c - SSL证书问题C

标签 c ssl curl openssl ssl-certificate

我正在尝试使用 libcurl 将 https 请求 (ssl) 发送到 API 服务器 (Last.fm)。当我尝试发送 http 请求时没问题,但是当我发送 https 请求时却不行。在谷歌和堆栈溢出中进行多次搜索后,我从互联网上获得了这个示例代码并尝试执行它但它不起作用并显示此错误:

curl_easy_perform() failed: Peer certificate cannot be authenticated with given CA certificates

有示例代码:

#include <stdio.h>
#include <curl/curl.h>
#include <string.h>

int main() {
CURLcode res;
CURL *handle = curl_easy_init();
char url[] = "https://google.com";
curl_easy_setopt(handle, CURLOPT_URL, url);
res=curl_easy_perform(handle);
if(res==CURLE_OK)
{
printf("OK");
}

else{
printf("curl_easy_perform() failed: %s \n", curl_easy_strerror(res));
     }

return 0;

}

P.S:我正在从我的终端使用 gcc 进行编译。

最佳答案

我通过删除 libcurl4-gnutls-dev 并安装 libcurl4-openssl-dev 解决了这个问题。如果你有同样的问题,你只需要这个命令:

sudo apt-get install libcurl4-openssl-dev

这会自动删除 libcurl4-gnutls-dev。

关于c - SSL证书问题C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43350964/

相关文章:

java - 使用 JNI 授予对 Android 应用程序的 C/C++ native 端的 root 访问权限,这似乎是不可能的

c - wait 和 waitpid 在 Linux 中返回时会阻塞 SIGCHLD 并解除阻塞吗?

c - 从同一编译单元覆盖 C 中的函数调用

mysql - C 中的函数返回 MYSQL_RES

javascript - 使用 Nginx 在端口上绑定(bind) Node.js 应用程序

encryption - 根据文件请求在 2 个服务器之间进行数据加密

amazon-web-services - Neo4j:服务不可用:Websocket 连接失败

linux - 通过 Bash 登录站点 (Stack Overflow)

javascript - 在 Javascript 重定向窗口位置后获取页面的 URL 如何使用 Src LInk

curl - curl的基本授权命令