r - 带有 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 证书?
解决方案
推荐阅读
- mysql - 未签名的 MySQL CAST 不起作用
- excel - 计算与单个列中的多个条件匹配的列中的唯一值
- scala - 无法在 Play for Scala 中发送到浏览器 ByteArrayOutputStream
- php - mcrypt_encrypt():此算法不支持大小为 8 的密钥。第 57 行仅支持大小为 16、24 或 32 的键
- android - android类的安全性
- erlang - 在 erlang eunit failure 中打印测试夹具描述
- actions-on-google - webhook 响应中的异常处理 - DialogFlow
- android - 如果 kikid 在 firebase 数据库中不包含用户 ID,该怎么办?
- c# - 如何将变量类型转换为另一种变量类型
- python - Pandas DataFrame 中的数据类型不变