R API 调用因不受信任的机构颁发的证书链而失败

R API call fails due to certificate chain issued by an authority that is not trusted

我才刚刚开始接触 API 水域,我正在尝试按照 this link 上的“发送简单请求”部分进行操作。执行时

github_api <- function(path) {
  url <- modify_url("https://api.github.com", path = path)
  GET(url)
}

resp <- github_api("/repos/hadley/httr")

我收到以下错误消息:

Error in curl::curl_fetch_memory(url, handle = handle) : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

我尝试在我的机器上进行的大多数 API 调用都收到类似的错误消息,尽管调用

GET("http://api.open-notify.org/astros.json")

取自this link愉快returns数据没有问题。在 google 中搜索错误消息 returns 很多与 R 无关的帖子,我无法确定我可以采取哪些故障排除步骤。

更新

我已经成功地在另一台机器上测试了调用,所以我的主机上存在一些 setting/configuration/firewall 障碍,这阻止了我进行一些但不是全部 API 调用。这可能与this issue有关。有没有办法确定根本原因并应用修复?

我能够通过使用转发代理来解决这个问题,它允许我的机器到达我公司防火墙之外的站点,如下所示(我已经模糊了 url 和端口,原因很明显):

proxy <- use_proxy( url = "http://myproxy"
                   ,port = 9999
                   ,auth = "basic")
github_api <- function(path) {
  url <- modify_url("https://api.github.com", path = path)
  GET(url, proxy)
}

resp <- github_api("/repos/hadley/httr")

希望遇到此问题的任何其他人都可以使用这样的转发代理。