首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CRAN中使用ssl_verifypeer = FALSE?

在CRAN中使用ssl_verifypeer = FALSE?
EN

Stack Overflow用户
提问于 2017-05-29 04:02:05
回答 2查看 1.9K关注 0票数 3

我在CRAN上有一个API包,它提供了一个与联合国数据库(链接到UN site)的接口,它是使用httr构建的,它使用curl包。昨天,我发现我的包的核心功能在Windows机器上不再正常工作了,它们都在错误消息中失败:

Error in curl::curl_fetch_memory(url, handle = handle) : Peer certificate cannot be authenticated with given CA certificates

这基本上意味着存在一个CA证书问题,阻止curl完成连接。在对此进行了一些研究之后,我认为托管DB的联合国站点是问题所在,它的SSL证书在SSL解码器中是无效的(请参阅此链接)。

解决此问题的一个简单方法是在所有对ssl_verifypeer = FALSE的调用中添加param httr::GET()。但是,出于安全原因,这并不是一个理想的解决方案,因为它基本告诉curl不管站点的证书是否有效,都要建立连接。

我的问题是,在CRAN包中使用这个参数的共识是什么?记住,联合国网站(大概)是安全的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-29 20:26:48

通过https://curl.haxx.se/docs/sslcerts.html

获取一个CA证书,该证书可以验证远程服务器,并使用适当的选项指出此CA证书,以便在连接时进行验证。libcurl黑客:curl_easy_setopt(curl, CURLOPT_CAPATH, capath)

在R curl options中,这是capath

如果您信任主https://curl.haxx.se/docs/caextract.html站点,您可以在这里获得这些站点的最新版本。

如果碰巧看到对两者的引用,则为cacert.pem === ca-bundle.crt

如果更新后的CA文件仍然会导致问题,那么通过将FALSE传递给您的函数,可以让用户认为它们是可以的,这对用户是有害的。

我不知道数据交易、数据完整性丢失/操作会给人们带来什么危害。但除此之外,标记证书也是MITM用户的标志。不管是哪种方式,你都应该三思而后行。

票数 1
EN

Stack Overflow用户

发布于 2017-05-29 04:14:19

我不知道共识,但哈德利

您不应该使用ssl.verifypeer = FALSE作为缺省值,除非您不想知道您的安全何时受到了破坏。

也就是说,默认情况下,我见过包裹使用该选项。

问题是:没有有效的证书,你怎么知道联合国网站而不是被破坏了?

我建议在包文档的顶部清楚地标记这个问题,并指出设置选项是用户的责任。希望主机服务能尽快整理出它的证书。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44234417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档