ETA: Per https://github.com/hiratake55/RForcecom/issues/42 , it looks like the author of the rforcecom package has updated rforcecom to use httr instead of RCurl (as of today, to be uploaded to CRAN tomorrow, 7/1/16), so my particular issue will be solved at that point. However, the general case (implementing TLS 1.1/1.2 in RCurl) may still be worth pursuing for other packages. Or everyone may just switch to the more recent curl package instead of RCurl.RCurlのTLS v1.1/TLS v1.2のサポート
背景:rforcecomパッケージを使用してSalesforceと数か月間通信しています。 Salesforceは最近、TLS v1.0のサポートを無効にし、サンドボックスでTLS v1.1以上を必要としています。このアップデートは、2017年3月の実稼働環境で行われます。
rforcecomはRCurlを使用してsalesforce.comサーバーと通信します。一般curlPerform方法は、(この例では、rforcecom.login.Rからである)このような何かを実装され、使用されている:
h <- basicHeaderGatherer()
t <- basicTextGatherer()
URL <- paste(loginURL, rforcecom.api.getSoapEndpoint(apiVersion), sep="")
httpHeader <- c("SOAPAction"="login","Content-Type"="text/xml")
curlPerform(url=URL, httpheader=httpHeader, postfields=soapBody, headerfunction = h$update, writefunction = t$update, ssl.verifypeer=F)
私が述べたように、これは、しばらくの間、私のために働いてきました。私はと、私はパッケージのローカルコピーでそれを実装せず(修正および調達しました
UNSUPPORTED_CLIENT: TLS 1.0 has been disabled in this organization. Please use TLS 1.1 or higher when connecting to Salesforce using https.
:今、Salesforceはサンドボックス上でTLS v1.0のを無効にしていること、しかし、それは次のエラーで失敗しますRForcecomのログインモジュールのローカルコピーに変更がありました。実験で、SSLVERSIONの既存の列挙値のいずれかを指定することができました。sslversion=SSLVERSION_TLSv1
、sslversion=SSLVERSION_SSLv3
などをcurlPerformオプションが呼び出される場所。しかし、これらのすべてが私に上記と同じエラーを与えます。
Error in merge(list(...), .opts) : object 'SSLVERSION_TLSv1.1' not found
か::私はlibcurlのではなく、RCurl(SSLVERSION_TLSv1.1
、SSLVERSION_TLSv1.2
)に実装されているオプションのいずれかを使用しようとすると、私は次のエラーを取得
Error in merge(list(...), .opts) : object 'SSLVERSION_TLSv1.2' not found
を私が確認しましたcurlVersion()
と私のlibcurlバージョンは、https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.htmlによると、これらのオプションをサポートしています7.40.0です。しかし、RCurlに認識させることができません。
私が探しているのは、RCurlにTLS v1.1またはTLS v1.2を使用させる方法です。私がそれを得るための援助を感謝します。私は最初に自分自身に質問しているので、私は以前は常に他の人の質問と回答を読むことによって混乱することができたので、私は問題の問題/問題のために私の質問にお詫び申し上げます。