2014-07-17 238 views
16

我試圖讓devtools::install_github()揹着我公司代理的工作在Windows 7devtools :: install_github() - 忽略SSL證書驗證失敗

到目前爲止,我不得不做以下幾點:

> 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 

顯然我們有一些證書服務器用我們自己的公司SSL證書替換SSL證書(通過https://github.com確認並檢查證書)。

無論如何,只是想知道是否有辦法忽略該證書錯誤並繼續安裝?

+1

它可能不是最好的解決辦法,但會下載從GitHub庫的zip和本地安裝是一個可接受的解決方案,如果一切都失敗了? – Dason

+0

好主意 - 我甚至沒有考慮過它。儘管如此,仍然非常希望不必這樣做。 –

+3

嘗試'set_config(config(ssl.verifypeer = 0L))' – jdharrison

回答

25

解決此問題的一種方法是將CURLOPT_SSL_VERIFYPEER設置爲false。此選項確定curl是否驗證對等方證書的真實性。值1表示捲曲驗證; 0(零)表示它沒有。 http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html

相關選項需要傳遞給RCurl。在RCurl中,將CURLOPT_的字母刪除並將下劃線更改爲.

set_config(config(ssl.verifypeer = 0L)) 

將使用httr當相關選項傳遞給RCurl

UPDATE:

httr因爲該答案被寫已經從RCurl移動作爲底層的依賴於curl包。捲曲選項現在指定 用下劃線所以上面的是:

set_config(config(ssl_verifypeer = 0L)) 

httr當前版本。

+5

必須在升級Ubuntu和R後更改ssl.verifypeer - > ssl_verifypeer –

+1

@jdharrison找不到函數「set_config」 – skan

+1

您必須在嘗試使用之前加載'httr'包這裏是set_config片段。 –