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.
: 이제 세일즈 포스 샌드 박스에 TLS v1.0을 비활성화했다고하지만, 다음과 같은 오류와 함께 실패 RForcecom에 대한 로그인 모듈의 로컬 복사본을 변경 한 경험이 있습니다. 실험을 통해 sslversion=SSLVERSION_TLSv1
, sslversion=SSLVERSION_SSLv3
등을 추가하여 SSLVERSION의 기존 열거 값을 성공적으로 지정할 수 있음을 발견했습니다. curlPerform이 호출되는 곳의 옵션. 그러나 이들 모두는 나에게 위와 같은 오류를 준다. 내가 libcurl에서 구현하지만 RCurl (SSLVERSION_TLSv1.1
, SSLVERSION_TLSv1.2
)에있는 옵션 중 하나를 사용하려고 할 때, 나는 다음과 같은 오류 얻을 :
Error in merge(list(...), .opts) : object 'SSLVERSION_TLSv1.1' not found
또는 :
Error in merge(list(...), .opts) : object 'SSLVERSION_TLSv1.2' not found
내가 확인한 내 libcurl 버전이 https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html에 따라 해당 옵션을 지원하는 7.40.0 인 curlVersion()
이 있습니다. 그러나 RCurl을 인식 할 수 없습니다.
이 시점에서 내가 찾고있는 것은 TLS v1.1 또는 TLS v1.2를 사용하는 RCurl을 얻는 방법이며, 내가 얻을 수있는 도움에 대해 매우 감사 할 것입니다. 어떤 질문/문제로 인해 사과를 드리는 것은 처음입니다. 이전에는 항상 다른 사람들의 질문과 답변을 읽으면서 혼란 스러울 수있었습니다.