【问题标题】:OpenSSL error using Omniauth, specified ssl path but didn't work使用 Omniauth 的 OpenSSL 错误,指定了 ssl 路径但不起作用
【发布时间】:2011-07-20 02:49:36
【问题描述】:

当我的网站获得 /auth/twitter 时,我得到了这个:

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):

我修改了twitter的omniauth配置:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, 'BLANKED', 'BLANKED',  {:client_options => {:ssl => {:ca_path => "/etc/ssl/certs/"}}}
end

没有骰子。

检查了路径,/etc/ssl/certs/,据我所知,它存在。

我正在使用omniauth 0.2.6 和法拉第0.6.1。

【问题讨论】:

  • 你有openssl和其他相关的库吗?你能更新公共根 ssl 证书吗?
  • 我可以访问我的 VPS,因此我可以更新公共根 ssl 证书。 Openssl 已安装。

标签: ruby-on-rails openssl omniauth


【解决方案1】:

将以下行添加到文件 config/initializers/omniauth.rb 有帮助!

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

但此配置不会验证您的 SSL 证书。我很久以前为我的一个没有 SSL 的暂存应用程序这样做了,所以要小心! 不要在生产环境中这样做。

【讨论】:

  • 这在通过omniauth 验证facebook 和twitter 以及使用omnicontacts 从gmail 中提取联系人时帮助了我
  • 在 facebook auth 方面也帮助了我。
  • 糟糕的解决方案。现在您的任何 SSL 证书都不会被验证。
  • 刚刚意识到我忘记在答案中提及这一点,此配置不会验证您的 SSL 证书。我很久以前为我的一个没有 SSL 的应用程序这样做了
【解决方案2】:

你不是唯一一个遇到这个问题的人。最新版本的omniauth和法拉第似乎是一个已知问题。检查 github 上的问题以保持最新状态:https://github.com/intridea/omniauth/issues/404

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多