You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R/Shiny调用RCurl请求接口报SSL certificate problem: unable to get local issuer证书错误如何解决

报错原因

该SSL证书报错是RCurl默认对HTTPS请求做证书合法性校验触发的:你访问的目标接口使用的SSL证书要么是企业自签名证书,要么是由RCurl默认根证书库未收录的CA机构签发,RCurl无法在本地信任证书列表中找到对应根证书完成有效性校验,因此抛出该错误。

报错截图

SSL证书报错截图

解决方案

下面给出不同适用场景的解决方法:

  • 临时测试方案(生产环境禁用):直接关闭SSL证书校验,仅适合本地快速调试使用,存在中间人攻击风险
    代码示例:
    library(RCurl)
    data = getURL("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J",
                  ssl.verifypeer = FALSE)
    
  • 生产环境推荐方案:将目标接口对应的根CA证书导出为PEM格式文件,放到项目目录后在请求中指定信任该证书
    代码示例:
    library(RCurl)
    data = getURL("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J",
                  cainfo = "./corporate_root_ca.pem")
    
    如果需要全局生效,可提前配置RCurl全局参数:
    options(RCurlOptions = list(cainfo = "./corporate_root_ca.pem"))
    
  • 替换请求库方案:换成证书处理逻辑更友好的httr库实现请求,适配方案和RCurl逻辑一致
    关闭校验(测试用)代码:
    library(httr)
    res <- GET("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J",
               config(ssl_verifypeer = 0))
    data <- content(res, as = "text")
    
    指定信任证书代码:
    library(httr)
    res <- GET("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J",
               ca_cert = "./corporate_root_ca.pem")
    data <- content(res, as = "text")
    

内容的提问来源于stack exchange,提问作者Edgar Céspedes Sabogal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:18:06