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

Rails本地开发模式下Geocoder因证书过期连接报错如何解决

问题根源

该报错由本地环境过旧的OpenSSL版本导致:OpenSSL 0.9.8默认的证书信任库不包含新版ISRG根证书,且Ruby调用的OpenSSL组件不会读取系统钥匙串中手动更新的证书,Geocoder请求地理编码服务接口时SSL校验失败。

步骤1:安装新版OpenSSL与可信证书包

通过Homebrew安装兼容旧系统的新版OpenSSL和CA根证书集合:

brew install openssl ca-certificates

安装完成后执行如下命令获取证书文件路径,默认路径为/usr/local/etc/openssl/cert.pem:

echo "$(brew --prefix openssl)/cert.pem"

步骤2:给Geocoder指定CA证书路径

在Rails项目中新增config/initializers/geocoder.rb初始化文件,添加SSL证书配置即可,原有Geocoder的其他配置保留即可:

Geocoder.configure do |config|
  # 其他原有配置不变
  config.ssl_options = {
    ca_file: "/usr/local/etc/openssl/cert.pem"
  }
end

配置完成后重启Rails服务,即可解决证书校验失败问题。

可选:全局配置Ruby OpenSSL证书

如果你的其他Ruby gem也有同类SSL报错,可以在shell的环境变量配置文件(~/.bash_profile或~/.zshrc)中添加如下配置,全局指定可信证书路径:

export SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem
export SSL_CERT_DIR=/usr/local/etc/openssl/certs

添加完成后执行source ~/.bash_profile(对应你使用的shell配置文件)生效即可。

临时调试方案(仅本地开发可用,禁止生产环境使用)

如果仅需要临时调试,可临时关闭Geocoder的SSL校验:

Geocoder.configure do |config|
  config.ssl_verify = false
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:36:03