2014-07-17 27 views
16

Tôi đang cố gắng để có được devtools::install_github() làm việc đằng sau proxy công ty của tôi trên Windows 7.DevTools :: install_github() - Bỏ qua thất bại xác minh SSL cert

Cho đến nay tôi đã phải làm như sau:

> 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 

Dường như chúng tôi có một số loại máy chủ chứng chỉ thay thế chứng chỉ SSL bằng chứng chỉ SSL của công ty chúng tôi (được xác nhận bằng cách truy cập https://github.com và kiểm tra chứng chỉ).

Nhưng dù sao, chỉ cần tự hỏi liệu có cách nào bỏ qua lỗi cert đó và tiến hành cài đặt không?

+1

Nó có thể không phải là giải pháp đẹp nhất nhưng sẽ tải xuống mã zip từ repo github và cài đặt cục bộ là giải pháp có thể chấp nhận được nếu mọi thứ khác không thành công? – Dason

+0

Ý tưởng hay - tôi thậm chí còn không nghĩ đến nó. Vẫn còn rất nhiều hy vọng không phải làm điều đó mặc dù. –

+3

Thử 'set_config (config (ssl.verifypeer = 0L))' – jdharrison

Trả lời

25

Một cách để xử lý sự cố là đặt CURLOPT_SSL_VERIFYPEER thành sai. Tùy chọn này xác định liệu curl có xác minh tính xác thực của chứng chỉ của người ngang hàng hay không. Giá trị 1 có nghĩa là curl xác minh; 0 (không) có nghĩa là không. http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html

Tùy chọn liên quan cần được chuyển đến RCurl. Trong RCurl, CURLOPT_ bị xóa chữ cái viết thường và dấu gạch dưới được đổi thành ..

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

sẽ vượt qua các tùy chọn liên quan đến RCurl khi sử dụng httr.

UPDATE:

Các httr kể từ khi câu trả lời này đã được viết đã chuyển từ RCurl như một sự phụ thuộc cơ bản vào gói curl. tùy chọn cURL đây được chỉ định với dấu gạch để ở trên sẽ là:

set_config(config(ssl_verifypeer = 0L)) 

trong phiên bản hiện tại của httr.

+5

Đã thay đổi ssl.verifypeer -> ssl_verifypeer sau khi nâng cấp Ubuntu và R. –

+1

@jdharrison không thể tìm thấy hàm "set_config" – skan

+1

Bạn phải tải gói 'httr' trước khi cố gắng sử dụng đoạn mã set_config ở đây. –

Các vấn đề liên quan