我在我的 C 应用程序中使用 libcurl 与我设置的 HTTPS 服务器进行通信。我在该服务器上生成了一个自签名证书,我希望将其与curl 一起使用。
我知道将 CURLOPT_SSL_VERIFYPEER 设置为 0 可以绕过 SSL 验证,但我希望将生成的证书添加到curl 的“有效”CA 证书中。
我尝试将CURLOPT_CAPATH和CURLOPT_SSLCERT设置为服务器SSL公钥的位置,但无法通过验证。
如何添加我自己的 CA/自签名证书以便 libcurl 能够成功验证它?
要添加自签名证书,请使用CURLOPT_CAINFO
要检索站点的 SSL 公共证书,请使用
openssl s_client -connect www.site.com:443 | tee logfile
证书是标记的部分----BEGIN CERTIFICATE----
and
---END CERTIFICATE----
.
将该证书保存到文件中,并以如下方式使用curl:
CURL* c = curl_easy_init();
curl_easy_setopt(c, CURLOPT_URL, "https://www.site.com");
curl_easy_setopt(c, CURLOPT_CAINFO, "/path/to/the/certificate.crt");
curl_easy_setopt(c, CURLOPT_SSL_VERIFYPEER, 1);
curl_easy_perform(c);
curl_easy_cleanup(c);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)