问题
当使用 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。
- 不验证 TSL 证书:
- liburl:
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
- 命令行:添加参数
-k
或--insecure
- liburl:
- 指定 CA 证书:
- liburl:
curl_easy_setopt(curl, CURLOPT_CAINFO, cacert);
- 命令行:添加参数
--cacert /path/to/cacert.pem
- liburl:
- 使用环境变量(仅命令行):
set CURL_CA_BUNDLE=/path/to/cacert.pem
- 对于 Windows 下的 curl 命令,将
cacert.pem
重命名为curl-ca-bundle.crt
,并保存到以下路径之一:- curl.exe 命令所在路径;
- 当前工作路径;
- Windows 系统路径(C:\Windows\system32);
- Windows 路径(C:\Windows);
- 任意
%PATH%
路径。
转: https://www.fournoas.com/posts/curl-unable-to-get-local-issuer-certificate/
标签:证书,Windows,CA,pem,cacert,curl,发行者 From: https://www.cnblogs.com/fps2tao/p/17991865