2014-07-17 9 views
16

Ich versuche, hinter meinem Corporate-Proxy auf Windows 7.devtools :: install_github() - SSL-Zertifikat-Verifizierungsfehler ignorieren

Bisher zu bekommen devtools::install_github() Arbeits Ich habe folgendes zu tun:

> 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 

Anscheinend haben wir eine Art Zertifikatserver, der SSL-Zertifikate durch unsere eigenen Unternehmens-SSL-Zertifikate ersetzt (bestätigt durch https://github.com und Prüfung des Zertifikats).

Wie auch immer, nur fragen, ob es eine Möglichkeit gibt, diesen Cert Fehler zu ignorieren und mit der Installation fortfahren?

+1

Es ist vielleicht nicht die beste Lösung, aber würde das Herunterladen der ZIP aus dem Github Repo und die lokale Installation eine akzeptable Lösung sein, wenn alles andere fehlschlägt? – Dason

+0

Gute Idee - ich hatte es nicht einmal in Betracht gezogen. Ich hoffe immer noch, dass ich das nicht tun muss. –

+3

Versuchen Sie 'set_config (config (ssl.verifypeer = 0L))' – jdharrison

Antwort

25

Eine Möglichkeit, das Problem zu lösen, ist die CURLOPT_SSL_VERIFYPEER auf false setzen. Diese Option bestimmt, ob curl die Authentizität des Zertifikats des Peers überprüft. Ein Wert von 1 bedeutet curl verify; 0 (Null) bedeutet, dass es nicht ist. http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html

Die entsprechende Option muss an RCurl übergeben werden. In RCurl wird die CURLOPT_ Buchstaben aus Kleinbuchstaben entfernt und der Unterstrich wird geändert in ..

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

wird die entsprechende Option zu RCurl geben, wenn httr verwenden.

UPDATE:

Die httr da diese Antwort geschrieben wurde, ist von RCurl als Grund Abhängigkeit zum curl Paket verschoben. cURL Optionen sind jetzt mit Unterstrichen angegeben, so dass die oben wären:

set_config(config(ssl_verifypeer = 0L)) 

in der aktuellen Version von httr.

+5

Hatte die Änderung ssl.verifypeer -> ssl_verifypeer nach der Aktualisierung von Ubuntu und R. –

+1

@jdharrison konnte die Funktion "set_config" nicht finden – skan

+1

Sie müssen das 'httr'-Paket laden, bevor Sie versuchen zu verwenden das Snippet set_config hier. –