简体   繁体   English

如何将.CER 与 curl_easy_setopt 一起使用

[英]how to use .CER with curl_easy_setopt

I would like to use.cer file with curl api in C++.我想在 C++ 中使用带有 curl api 的 .cer 文件。 I was exploring some options as described in https://curl.se/libcurl/c/curl_easy_setopt.html .我正在探索https://curl.se/libcurl/c/curl_easy_setopt.html中描述的一些选项。 here is the code snippet which i tried这是我尝试过的代码片段

 curl_easy_setopt(curl1, CURLOPT_CUSTOMREQUEST, "GET");
  curl_easy_setopt(curl1, CURLOPT_URL, "https://test.com/?AppID=DB");
  curl_easy_setopt(curl1, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl1, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  curl_easy_setopt(curl1, CURLOPT_HTTPHEADER, headers);

  curl_easy_setopt(curl1, CURLOPT_SSLCERTTYPE, "CER");
  curl_easy_setopt(curl1, CURLOPT_SSLCERT, "/cacert.cer");
  res = curl_easy_perform(curl1);

but here I get error saying Failed: SSL peer certificate or SSH remote key was not ok但在这里我收到错误消息 Failed: SSL peer certificate or SSH remote key was not ok

Thanks you in advance for helping.提前感谢您的帮助。

CURLOPT_SSLCERT sets the client certificate, it's supposed to be used in combination with CURLOPT_SSLKEY .CURLOPT_SSLCERT设置客户端证书,它应该与CURLOPT_SSLKEY结合使用。

To set the server (CA) certificate, useCURLOPT_ISSUERCERT for a single cert or CURLOPT_CAINFO for a CA bundle.要设置服务器(CA) 证书,请对单个证书使用CURLOPT_ISSUERCERT ,对 CA 包使用CURLOPT_CAINFO

Though it accepts only PEM format.虽然它只接受PEM格式。

You can convert DER to PEM using eg OpenSSL.您可以使用例如 OpenSSL 将 DER 转换为 PEM。

openssl x509 -inform der -in cacert.cer -out cacert.pem

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM