首页 > 解决方案 > 带有 Salesforce.com 的 RCurl 返回不支持的 SSL 协议版本

问题描述

我真的在这里扯掉我的头发。好像连login.salesforce.com的首页都查询不到

require(RCurl)
#Works, note I removed sslversion
getURL("https://www.google.com/", cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"), .opts=c(followLocation=T, verbose = TRUE), ssl.verifypeer = FALSE)

#Does not work
getURL("https://login.salesforce.com/", cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"), .opts=c(followLocation=T, sslversion=5L, verbose = TRUE), ssl.verifypeer = FALSE)

当我输入RCurl::curlVersion()$ssl_version它返回[1] "OpenSSL/1.0.0o"

根据https://help.salesforce.com/articleView?id=000221207&r=https%3A%2F%2Fwww.google.ca%2F&type=1他们最近禁用了 TLS 1.0,因此您需要 1.1 支持。这使我认为我需要更新的 libcurl 可以执行 TLS 1.1

我从这里的另一个堆栈溢出帖子中被提示到 5L:RCurl 中的 TLS v1.1 / TLS v1.2 支持

我在想我当前的 RCurl 或 Curl 包中实际上没有那个级别的 ssl,因为当我开始在 RStudio 中输入 ssl 时,我得到以下建议:

无论如何,我还应该注意,我的工作计算机被安全软件高度锁定,我无权安装程序或诸如此类的东西。我当然可以拖放二进制文件。所以我去下载了最新的 libcurl 二进制文件并将它们安装在 C:\CURL 上——我什至把 C:\CURL\BIN 放在我的路径中。但没有任何效果。

长话短说,我如何让 RCurl 使用 TLS 1.1 SSL 证书?

标签: rcurlsalesforcelibcurlrcurl

解决方案


推荐阅读