解决 curl 无法获取本地发行者证书问题

问题

当使用 curl 命令打开 HTTPS 网站,比如:

curl -sSL https://www.github.com/

显示如下错误:

curl: (60) SSL certificate problem: unable to get local issuer certificate

根据错误信息可以得知,问题是 curl 找不到本地的 CA 证书所导致。

解决方案

首先,下载 CA 证书:https://curl.se/ca/cacert.pem

  1. 不验证 TSL 证书:
    • liburl:curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    • 命令行:添加参数 -k 或 --insecure
  2. 指定 CA 证书:
    • liburl:curl_easy_setopt(curl, CURLOPT_CAINFO, cacert);
    • 命令行:添加参数 --cacert /path/to/cacert.pem
  3. 使用环境变量(仅命令行):set CURL_CA_BUNDLE=/path/to/cacert.pem
  4. 对于 Windows 下的 curl 命令,将 cacert.pem 重命名为 curl-ca-bundle.crt,并保存到以下路径之一:
    1. curl.exe 命令所在路径;
    2. 当前工作路径;
    3. Windows 系统路径(C:\Windows\system32);
    4. Windows 路径(C:\Windows);
    5. 任意 %PATH% 路径。

 

转: https://www.fournoas.com/posts/curl-unable-to-get-local-issuer-certificate/

 

posted @ 2024-01-27 20:08  与f  阅读(85)  评论(0编辑  收藏  举报