我有一个CRAN上的API包,它提供了与联合国DB(联合国网站的link)的接口,它使用httr构建,它使用curl包。我昨天说我的包的核心功能已不再在Windows机器上正常工作发现,他们都失败,错误消息:在CRAN pkg中使用ssl_verifypeer = FALSE?
Error in curl::curl_fetch_memory(url, handle = handle) : Peer certificate cannot be authenticated with given CA certificates
这基本上意味着有一个CA证书颁发防止卷曲无法完成的连接。在仔细研究这一点之后,我相信联合国网站托管数据库是问题,它的SSL证书对于每个ssldecoder都是无效的(参见link)。
解决此问题的一个简单解决方法是将参数ssl_verifypeer = FALSE
添加到对httr::GET()
的所有调用中。但是,出于安全原因,这不是理想的解决方案,因为它基本上告诉curl进行连接,而不管站点证书的有效性。
我的问题是,在CRAN包中使用这个参数有什么共识?请记住,联合国网站(可能是)安全吗?
感谢您对@hrbrmstr的反馈。我已经通过电子邮件发送了CRAN,让他们知道发生了什么事情,并建议他们采取措施,直到问题得以解决。我还在联合国Comtrade网站上提交了一份错误报告,让他们知道我发现的内容,并询问他们是否最近更改了他们的SSL证书。最后一个问题,我仍然可以通过read.csv和json数据使用rjson pkg从站点获取CSV数据......这是否意味着这些选项本质上不如httr/curl安全(并且因此I不应该依赖他们)? –