向DigitalOcean Spaces传文件时出现Seahorse::Client::NetworkingError求助
ActiveStorage 连接 DigitalOcean Spaces 时 SSL 证书验证失败问题
我按照《How To Use ActiveStorage in Rails 6 with DigitalOcean Spaces》教程配置完 DigitalOcean Space 后,上传图片时出现以下错误:
Seahorse::Client::NetworkingError (SSL_connect returned=1 errno=0 state=error: certificate verify failed (unspecified certificate verification error))
环境信息
- 系统:搭载 M1 芯片的 macOS 13.0
- Ruby 版本:2.7.1
- Ruby 编译选项:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
解决方法
1. 手动指定 SSL 证书路径
M1 Mac 上 Ruby 可能无法自动识别 OpenSSL 证书位置,可通过环境变量指定:
- 在项目根目录新建/编辑
.env文件,添加:SSL_CERT_FILE=$(brew --prefix openssl@1.1)/etc/ssl/cert.pem - 或者启动服务器时临时传入:
SSL_CERT_FILE=$(brew --prefix openssl@1.1)/etc/ssl/cert.pem rails s
2. 重新编译安装 Ruby
如果证书路径指定无效,重新安装 Ruby 确保与 OpenSSL@1.1 正确关联(以 rbenv 为例):
# 卸载现有 Ruby 2.7.1 rbenv uninstall 2.7.1 # 指定 OpenSSL 路径重新安装 RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" rbenv install 2.7.1
3. 导入 OpenSSL 证书到系统钥匙串
将 OpenSSL@1.1 的证书添加到系统信任列表:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain $(brew --prefix openssl@1.1)/etc/ssl/cert.pem
内容的提问来源于stack exchange,提问作者transGLUKator
相关产品推荐
相关产品推荐

