【问题标题】:Download certificate using openssl and setting certificate to libCURL使用 openssl 下载证书并将证书设置为 libCURL
【发布时间】:2013-08-14 10:19:22
【问题描述】:

我已经编写了一个应用程序来使用 openssl 下载服务器证书。然后我在 libCURL 中使用此证书与 HTTPS 通信进行通信。 LibCRL 给出无效证书错误 (60)。

在 libCURL 站点中搜索后,他们说要使用“cacert.pem”文件。然后我将选项 CURLOPT_CAINFO 设置为“cacert.pem”,将“CURLOPT_CAPATH”设置为下载的证书文件。然后效果很好。

然后我才知道下载的证书中缺少根证书,并且根证书存在于“cacert.pem”文件中。

现在我的查询是

1) 如何从服务器下载根证书?

2) 另外请告诉我设置证书的最佳做法。

【问题讨论】:

    标签: c++ c openssl libcurl


    【解决方案1】:

    从不从服务器下载根证书。基础设施的全部意义在于您已经拥有一组受信任的根证书。如果有人使用此根证书(直接或间接)签名,则您可以信任该证书。如果您从服务器下载根证书,您基本上放弃了证书的整个概念,并且还可以使用 HTTP。

    但是,如果您使用自己的证书(自签名),还有另一种选择:您可以maintain your own CA 并为此创建一个特殊的cacert.pem,或者禁用证书检查(后者不是推荐,因为它会降低您的应用程序的安全性!)。

    如果你正在做一些高级的事情,即没有一个 CA 签名的证书,它包含在像 libCURL 的 cacert.pem 这样的标准捆绑包中,那么你绝对应该阅读这背后的理论,否则你就有可能创建一个易受攻击的从一开始就申请。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2013-11-11
      • 2021-05-12
      相关资源
      最近更新 更多