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

配置S3/Paperclip遇Seahorse证书验证失败的NetworkingError

SSL证书验证失败错误(Seahorse::Client::NetworkingError)——S3/Paperclip服务搭建问题

最近在搭建基于S3和Paperclip的文件存储服务时,碰到了一个头疼的SSL证书验证错误,具体报错信息如下:

Seahorse::Client::NetworkingError 
  (SSL_connect returned=1 errno=0 state=error: certificate verify failed)

我的Paperclip配置如下:

config.paperclip_defaults = {
  storage: :s3,
  s3_host_name: "s3-eu-west-1.amazonaws.com",
  s3_credentials: {
    bucket: "my-buckt-name",
    access_key_id: "NOT-TELLING-YOU",
    secret_access_key: "NOT-TELLING-YOU-EITHER",
    s3_region: "s3-eu-west-1",
  }
}

临时可行但不安全的解决方法

当我禁用SSL证书验证后,文件可以正常上传,有两种实现方式:

  1. 全局禁用OpenSSL验证:
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
  1. 针对AWS SDK单独禁用验证:
Aws.config[:ssl_verify_peer] = false

显然这两种方式都存在安全风险,但这也说明我的S3/Paperclip核心配置本身是正确的。

已尝试但无效的修复方法

我查阅相关资料后,尝试了以下方法的多种组合,但问题仍未解决:

  • 使用AWS SDK自带的证书:
Aws.use_bundled_cert!
  • 指定自定义证书路径:
Aws.config[:ssl_ca_bundle] = '/usr/local/etc/openssl/cert.pem'
  • 按照社区建议,重新安装不带二进制包的Ruby(通过RVM),并更新了系统根证书

相关版本信息

  • Ruby: 2.4.2 / 2.5.0(通过RVM安装)
  • Aws-Sdk: 3.0.1
  • Paperclip: 5.2.1(也尝试了master分支的6.0版本,仅依赖aws-sdk-s3)
  • Rails: 5.1.4
  • 操作系统: OS X 10.12.6(部署到Heroku时同样出现该问题)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:14:34