【问题标题】:Ruby SSL Error, read server "certificate B: certificate verify failed"Ruby SSL 错误,读取服务器“证书 B:证书验证失败”
【发布时间】:2017-08-06 20:17:41
【问题描述】:

我正在尝试将某些内容保存到我的数据库,但默认流程需要在保存之前成功调用地理编码 lat/lng,这是引发此错误的时间。

我得到的错误是:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我用谷歌搜索了一下,发现RubyGems 似乎有类似的问题。我按照说明通过下载一个新的并将其复制到 ssl_certs 目录中手动更改 ssl 无济于事。

我的环境:

OpenSSL 0.9.8zh 14 Jan 2016
RVM 1.29.1
Ruby 2.2.2p95
Rails 4.2.7

【问题讨论】:

标签: ruby macos https openssl rvm


【解决方案1】:

尝试运行

gem update --system

还要确保您的 openssl 已链接

 brew link openssl

【讨论】:

  • 最后一条命令产生以下错误:Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib 我似乎无法通过。
【解决方案2】:

我能够用我认为有点 hack 的方法解决我的问题,但它可能对你有用。我刚刚在控制器中禁用了 SSL 验证,该控制器使用以下代码行引发错误:

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

据我所知,Ruby 和 RVM 使用的证书存在问题,并且版本之间存在差异。我尝试的每个修复都涉及下载新证书并手动将它们放置在 Ruby 或 OpenSSL 目录中,但这不起作用。以下是我在这次冒险中查阅的一些资源:

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多