I'm trying to initialize a connection with read_xml (package xml2), but it seems to return an issue with SSL.
I tried this code:
sucupira = "https://sucupira.capes.gov.br/sucupira/public/consultas/coleta/producaoIntelectual/listaProducaoIntelectual.jsf"
test <- read_xml(sucupira)
And it returned this error:
Error in open.connection(x, "rb") :
Peer certificate cannot be authenticated with given CA certificates
I don't know why this is happening.
Employing httr, this works:
library(httr)
set_config( config( ssl_verifypeer = 0L ))
GET(sucupira)
Related
I am running into the following error when making an API call to REDCap through R. The error only occurs on the server while it works fine on my laptop. I have downloaded the certificate in the same directory where my code is.
Error in curl::curl_fetch_memory(url, handle = handle) :
SSL certificate problem: unable to get local issuer certificate
Calls: redcap_report ... request_fetch -> request_fetch.write_memory -> <Anonymous>
Execution halted
Here is my code
library(REDCapR)
my_uri <-'https://redcap-qi.xxx.xxx.xxx/xxx/xxx/API/'
my_token <- 'xxxxxxxxxxxxxxxxx'
my_data <-
redcap_report(redcap_uri = my_uri,
token = my_token,
report_id = 12345)$data
Adding the following resolved my issue
new_config <- httr::config(ssl_verifypeer = FALSE)
httr::set_config(new_config, override = FALSE)
I am trying to install a package from github in R, however I am getting the following error:
> install_github("jmp75/rClr", build_vignettes=TRUE)
Downloading github repo jmp75/rClr#master
Error in curl::curl_fetch_memory(url, handle = handle) :
Peer certificate cannot be authenticated with given CA certificates
I have set the RCurl options as such:
options(RCurlOptions = c(getOption("RCurlOptions"), ssl.verifypeer = FALSE, ssl.verifyhost = FALSE ) )
After checking the setting:
getOption("RCurlOptions")
we see....
$cainfo
[1] "C:/_CODE/R/Library/RCurl/etc/ca-bundle.crt"
$ssl.verifypeer
[1] FALSE
$ssl.verifyhost
[1] FALSE
Still I get the error:
Downloading github repo jmp75/rClr#master
Error in curl::curl_fetch_memory(url, handle = handle) :
Peer certificate cannot be authenticated with given CA certificates
any clues
Does this work? I had to change this bit of code recently from ssl.verifypeer to ssl_verifypeer
library(httr)
set_config(config(ssl_verifypeer = 0L))
see here devtools::install_github() - Ignore SSL cert verification failure
I am trying to install a package from github in R, however I am getting the following error:
> install_github("jmp75/rClr", build_vignettes=TRUE)
Downloading github repo jmp75/rClr#master
Error in curl::curl_fetch_memory(url, handle = handle) :
Peer certificate cannot be authenticated with given CA certificates
I have set the RCurl options as such:
options(RCurlOptions = c(getOption("RCurlOptions"), ssl.verifypeer = FALSE, ssl.verifyhost = FALSE ) )
After checking the setting:
getOption("RCurlOptions")
we see....
$cainfo
[1] "C:/_CODE/R/Library/RCurl/etc/ca-bundle.crt"
$ssl.verifypeer
[1] FALSE
$ssl.verifyhost
[1] FALSE
Still I get the error:
Downloading github repo jmp75/rClr#master
Error in curl::curl_fetch_memory(url, handle = handle) :
Peer certificate cannot be authenticated with given CA certificates
any clues
Does this work? I had to change this bit of code recently from ssl.verifypeer to ssl_verifypeer
library(httr)
set_config(config(ssl_verifypeer = 0L))
see here devtools::install_github() - Ignore SSL cert verification failure
I am facing a challenge when trying to use the HTTR package in R and the GET() function:
pg2 = GET("http://httpbin.org/basic-auth/user/passwd", authenticate("user","passwd"))
and i am getting the below error:
Error in function (type, msg, asError = TRUE) :
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
I have searched on the web and found that I need to update the .Rprofile file using the below command line:
options(RCurlOptions = list(verbose = FALSE, capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = FALSE))
but still it doesn't work and I keep getting the same error message.
also when i tried the below code
> HEAD("https://www.google.com", verbose())
About to connect() to www.google.com port 443 (#0)
Trying 173.194.32.211... * connected
Connected to www.google.com (173.194.32.211) port 443 (#0)
successfully set certificate verify locations:
CAfile: C:/Users/malek.safa/Documents/R/win-library/3.0/httr/cacert.pem
CApath: none
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Closing connection #0
Error in function (type, msg, asError = TRUE) :
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
you can see that it is still looking for the CA in the cacert.pm file
I spent about five hours playing with curl and RCurl. I was able to get it working. The option you want is cainfo, not capath. Capath tells RCurl where to look for the certificate file. Cainfo specifies a file.
This works for me with RCurl.
library(RCurl)
cer_file <- "/home/user/curltest/cacert.pem"
server_url <- "some_server"
getURL(server_url, cainfo=cer_file)
Now the question is how to get httr to understand this setting. The documentation talks about a default ca_cert, but doesn't explain how to use a different cert. In my case, I'm connecting to an intranet site that wouldn't be in the default cert. The answer lies in config.R. Httr allows us to set RCurl configuration options as I've done below.
cer_file <- "/home/me/curltest/cacert.pem"
GET(login_url, config=list(cainfo=cer_file))
If you are connecting to the internet, you probably just need to update the default cacert that comes with HTTR. The Readme shows you how to do this. This way you don't need to specify the cert in every call.
setwd("path to httr package")
GET("https://raw.githubusercontent.com/bagder/ca-bundle/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle.crt",
write_disk("inst/cacert.pem", overwrite = TRUE))
I'm trying to get devtools::install_github() working behind my corporate proxy on Windows 7.
So far I've had to do the following:
> library(httr)
> library(devtools)
> set_config(use_proxy("123.123.123.123",8080))
> devtools::install_github("rstudio/ggvis")
Installing github repo ggvis/master from rstudio
Downloading master.zip from https://github.com/rstudio/ggvis/archive/master.zip
Error in function (type, msg, asError = TRUE) :
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Apparently we have some kind of certificate server replacing SSL certs with our own corporate SSL certs (confirmed by going to https://github.com and examining the cert).
Anyhow, just wondering if there's a way to ignore that cert error and proceed with the installation?
One way to handle the problem is to set the CURLOPT_SSL_VERIFYPEER to false. This option determines whether curl verifies the authenticity of the peer's certificate. A value of 1 means curl verifies; 0 (zero) means it doesn't.
http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html
The relevant option needs to be passed to RCurl. In RCurl the CURLOPT_ is removed letters arre lowercase and the underscore is changed to ..
set_config( config( ssl.verifypeer = 0L ) )
will pass the relevant option to RCurl when using httr.
UPDATE:
The httr since this answer was written has moved from RCurl as an underlying dependence to the curl package. cURL options are now specified
with underscores so the above would be:
set_config( config( ssl_verifypeer = 0L ) )
in the current version of httr.
I tired #jdharrisonbut method but it didn't worked for me.
A Quick fix to avoid using https connection, is by replacing https by http. you install a package from cran by this method.
install.packages("http://cran.r-project.org/src/contrib/ggvis_0.4.4.tar.gz", repo=NULL, type="source")