gpt4 book ai didi

RCurl 和自签名证书问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:53 26 4
gpt4 key购买 nike

我在获取 RCurl 函数 getURL 以访问使用自签名证书的服务器上的 HTTPS URL 时遇到问题。我在 Mac OS X 10.9.2 上运行 R 3.0.2。

我已阅读FAQcurl page就此主题而言。所以这就是我的立场:

  1. 我已将证书副本保存到磁盘 (~/cert.pem)。
  2. 我已经能够使用这个完全相同的文件通过 python-requests 和“验证”选项连接到服务器,并且成功了。
  3. 命令行上的 curl 似乎忽略了 --cacert 选项。在使用 Mac OS X“Keychain Access”应用程序将证书标记为受信任后,我成功地使用它访问了该网站。
  4. RCurl 顽固地拒绝连接到具有以下代码的网站:

    getURL("https://somesite.tld ", verbose=T, cainfo=normalizePath("~/cert.pem"))

这是我得到的输出:

* Adding handle: conn: 0x7f92771b0400
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 38 (0x7f92771b0400) send_pipe: 1, recv_pipe: 0
* About to connect() to somesite.tld port 443 (#38)
* Trying 42.42.42.42...
* Connected to somesite.tld (42.42.42.42) port 443 (#38)
* SSL certificate problem: Invalid certificate chain
* Closing connection 38

当我使用相同的 cert.pem 文件和完全相同的 URL 在 Linux VM 中测试带有 --cacert 选项的 curl 和上面的 RCurl 代码时,它运行完美。

在 Linux 和 Mac OS X 上进行相同的测试,只有在 Mac OS X 上它们才会失败。即使将证书添加到钥匙串(keychain)也没有用。

唯一可行的方法是使用 ssl.verifypeer=FALSE,但出于安全原因我不想这样做。

我在这里没有想法。还有其他人对如何让它发挥作用有任何建议吗?

最佳答案

你可以试试:

library ("RCurl")
URL1 <- "https://data.mexbt.com/ticker/btcusd"
getURL(URL1,cainfo=system.file("CurlSSL","cacert.pem",package="RCurl"))

关于RCurl 和自签名证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22048703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com