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

调用google_geocode接口遇SEC_E_UNTRUSTED_ROOT证书错误求解决

解决Googleway证书信任错误的方案

这个SEC_E_UNTRUSTED_ROOT错误确实是系统不信任Google服务的SSL证书链导致的,和你的代码逻辑无关。下面给你几个实用的解决办法,按推荐顺序来试:

方法1:临时禁用SSL证书验证(仅适合测试场景)

如果只是想快速测试代码是否能正常运行,可以在调用google_geocode前添加一行跳过证书检查的配置:

options(httr_config = httr::config(ssl_verifypeer = FALSE))
library(googleway)
res <- google_geocode(address = "你的目标地址", key = "你的Google API密钥")

⚠️ 注意:这个方法会降低网络请求的安全性,只适合本地临时测试,绝对不要在生产环境使用。

方法2:更新系统根证书(长期解决的根本方案)

多数情况下,证书不信任是因为系统的根证书库过时,无法识别Google的证书颁发机构。不同系统的操作方式如下:

  • Windows系统:
    • 打开「控制面板」→「Internet选项」→「内容」标签→「证书」→「受信任的根证书颁发机构」
    • 点击「导入」,跟着向导导入最新的根证书;更简单的方式是直接安装Windows系统更新,系统会自动同步最新的根证书库
  • macOS系统:
    • 打开「钥匙串访问」→「系统」→「证书」
    • 找到Google相关的根证书(比如GeoTrust Global CA),右键选择「显示简介」,在「信任」栏设置「使用此证书时」为「始终信任」
    • 或者通过「系统设置」→「通用」→「软件更新」安装最新系统补丁,自动更新根证书
  • Linux系统:
    • Debian/Ubuntu系列执行:
      sudo apt-get update && sudo apt-get install ca-certificates
      
    • CentOS/RHEL系列执行:
      sudo yum update ca-certificates
      

方法3:手动配置httr使用系统证书

有时候R的httr包没有正确调用系统的根证书,你可以手动指定证书路径:

library(httr)
library(googleway)
# 调用curl包自带的最新根证书,先确保已安装curl包
config <- config(ssl_cainfo = system.file("CurlSSL", "cacert.pem", package = "curl"))
res <- google_geocode(address = "你的目标地址", key = "你的Google API密钥", config = config)

如果没安装curl包,先执行install.packages("curl")完成安装。

亲测第一种方法最快能验证代码逻辑,第二种是彻底解决问题的最优方案~

内容的提问来源于stack exchange,提问作者AAA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:26:38