Search code examples
rrcurldevtools

devtools::install_github() - Ignore SSL cert verification failure


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?


Solution

  • 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.