试图访问一个带有 httr
在macOS上运行会产生一个证书错误。
httr::GET("https://unstats.un.org/SDGAPI/v1/sdg/Indicator/List")
#> Error in curl::curl_fetch_memory(url, handle = handle): SSL certificate problem: certificate has expired
然而,在多台 Windows 机器上运行这个程序是成功的,除了安装了 httr
并运行上述代码(应该不需要证书)。是服务器端因为某种原因阻止了访问,还是客户端的问题,我可以调整?我无法在网上找到任何关于一般证书问题的资料,包括 httr
和macOS。
我可以在这台机器上成功访问其他API,使用 httr
,所以让我相信这是服务器端的问题,但自己没有足够的经验和知识来完全排除这个问题。
以下是我的会话信息,供参考。谢谢你能提供的任何帮助。
会话信息。
#> R version 4.0.0 (2020-04-24)
#> Platform: x86_64-apple-darwin19.4.0 (64-bit)
#> Running under: macOS Catalina 10.15.4
#>
#> Matrix products: default
#> BLAS/LAPACK: /usr/local/Cellar/openblas/0.3.9/lib/libopenblasp-r0.3.9.dylib
#>
#> locale:
#> [1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> loaded via a namespace (and not attached):
#> [1] Rcpp_1.0.4.6 digest_0.6.25 R6_2.4.1 magrittr_1.5
#> [5] evaluate_0.14 highr_0.8 httr_1.4.1 rlang_0.4.6
#> [9] stringi_1.4.6 curl_4.3 rmarkdown_2.1 tools_4.0.0
#> [13] stringr_1.4.0 xfun_0.14 yaml_2.2.1 compiler_4.0.0
#> [17] htmltools_0.4.0 knitr_1.28
我从昨天开始就遇到了一模一样的问题。查了一下,原来是一个普通的根CA证书在5月30日过期了(看这个) 回答). 一般来说,解决我的错误的方法是强制执行 Curl
(它支持 httr
函数)来忽略证书。
set_config(config(ssl_verifypeer = FALSE))
options(RCurlOptions = list(ssl_verifypeer = FALSE))
options(rsconnect.check.certificate = FALSE)
我对服务器问题几乎一无所知 但这对我来说是有效的,所以我希望对你来说也是如此。