我正在尝试使用signet将OAuth用于Google服务.并得到此错误:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
以下问题:
似乎解决方案是修复ca_path或设置.VERIFY_NONESSL
ca_path发布的修复程序仅适用于Linux(端口安装),修复程序VERIFY_NONE似乎适用于法拉第.
是否有Windows/signet gem的解决方案?
我已经按照Railscast#235尝试建立一个最小的Facebook身份验证.
我首先建立了一个Twitter身份验证,就像Ryan本人所做的那样.这完美无瑕.
然后我继续添加Facebook登录.但是,在授权应用程序后,重定向/auth/facebook/callback失败并显示:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
我正在使用localhost.我没有在应用程序中设置任何SSL.我究竟做错了什么?
我正在尝试通过Facebook或Twitter对用户进行身份验证,让他们填写他们的信息,然后单击"保存"(从而创建用户记录).我在最后一步得到一个OpenSSL错误 - 点击保存后.这发生在Devise RegistrationsController #create方法中.
所以我在我的Rails应用程序中收到此错误,在Heroku上托管:
2012-07-28T18:25:13+00:00 app[web.1]: OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed)
Run Code Online (Sandbox Code Playgroud)
我见过很多解决方案,但都没有.以下是我尝试过的一些事情:
1)安装certified宝石
2)将Heroku宝石升级到v2.30,再次推动
3)这个:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, TWITTER_KEY, TWITTER_SECRET, {:client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:scope => "publish_actions,user_location,email", :client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
end
Run Code Online (Sandbox Code Playgroud)
似乎有一个问题可能是这个证书文件实际上并不存在 - 我已经在几个地方看到了它,而且看起来这是Heroku的ca_cert文件的默认路径,但我可能是错的.
奇怪的是,这是在我通过FB/Twitter进行身份验证之后发生的,并且我正在尝试创建用户的帐户.为什么会这样,我该如何解决/调试呢?真诚的困惑.
更新:我将此行添加到Omniauth初始化程序,现在它"正常".因此,我已经诊断出问题出在Omniauth上.但是,我还想进行SSL验证......这显然会留下安全漏洞.
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
我无法安装指南针.我想在我的项目上安装指南针,所以当我尝试更新时,我得到了这个:
c:\ wamp\www\danjasnowski.com> gem install compass错误:找不到有效的宝石'指南针'(> = 0),原因如下:无法从https://rubygems.org/下载数据- SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://api.rubygems.org/specs.4.8.gz)
另外..我目前的版本.
c:\ wamp\www\danjasnowski.com> gem --version
2.4.1
和
irb(main):001:0> RUBY_VERSION
=>"2.0.0"
irb(main):002:0> RUBY_RELEASE_DATE
>"2014-05-08"
irb(主要):003:0> RUBY_PLATFORM
>"x64-mingw32"
irb(main):004:0> RUBY_PATCHLEVEL
=> 481
IRB(主):005:0>
我在Mac OS 10.6.8上使用Ruby 1.9.3p0(使用rvm安装).当我尝试使用GitHub上托管的应用程序模板创建一个新的Rails应用程序时,使用它(例如):
$ rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-devise-template.rb -T -O
我收到此错误消息:
/Users/me/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
据我所知,Ruby语言解释器使用OpenSSL连接到GitHub来请求应用程序模板文件.GitHub要求使用SSL进行所有连接.连接失败,因为OpenSSL无法验证服务器证书.
我可以通过下载证书文件来解决问题:
$ cd /opt/local/etc/openssl $ sudo curl -O http://curl.haxx.se/ca/cacert.pem $ sudo mv cacert.pem cert.pem
使用Ruby 1.9.2我没有问题.为什么我得到Ruby 1.9.3的"证书验证失败"问题?这是一个Ruby 1.9.3错误吗?它是否特定于Mac OS 10.6.8?我的解决方案是解决这个问题的正确方法吗?
我有两部MacBooks(一部关于小牛队,另一部关于优胜美地),同样的事情发生在两者上.使用RVM安装Ruby 2.2.3后,出现以下错误:
.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Faraday::SSLError)
Run Code Online (Sandbox Code Playgroud)
我曾尝试在线搜索解决方案,但似乎没有任何效果.大多数有此问题的人都在运行Windows机器.
$ rvm osx-ssl-certs status all
Certificates for /usr/local/etc/openssl/cert.pem: Up to date.
Certificates for /etc/openssl/cert.pem: Up to date.
Run Code Online (Sandbox Code Playgroud)
切换回2.2.2工作正常.有什么想法吗?
这里有新的Ruby on Rails,只是尝试安装和设置.
我正在按照本指南开始如何入门.但是,当我进入3.2创建博客应用程序时,我在运行时遇到了一个问题rails new blog.当我尝试这个时,我得到了一个错误
安装rake 10.4.2时发生错误,Bundler无法继续.在捆绑之前确保'gem install rake -v '10 .4.2''成功.
所以,当我尝试运行该命令时,我收到此错误:
错误:无法找到有效的gem'rake ':无法从https://rubygems.org/下载数据- SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败
谷歌搜索后,我找到了这个指南.在诊断部分,我试过跑openssl version,这没用.我安装了OpenSSL并将其添加到我的路径中.但是,当我尝试获取任何宝石时,我仍然会遇到同样的错误.我也无法ping rubygems.org - 什么都没有回来.
我使用的是Windows 7,Rails 4.1.8,Ruby 2.0.0p598,RubyGems 2.0.14和OpenSSL 1.01j.任何帮助将不胜感激!
我是Heroku的新手.我按照Heroku网站上的教程在Windows中设置Heroku.我安装了Heroku Toolbelt.当我运行该命令$ heroku login,并输入电子邮件和密码时,我收到以下错误:
Owner@OWNER-PC ~
$ heroku login
Enter your Heroku credentials.
Email: qwe
Password (typing will be hidden):
! Heroku client internal error.
! Search for help at: https://help.heroku.com
! Or report a bug at: https://github.com/heroku/heroku/issues/new
Error: Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `Excon.defaults[:ssl_ca_file] = path_to_file`, or `Excon.defaults[:ssl_verify_peer] = false` (less secure). (Excon::Errors::SocketError)
Backtrace: C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/ssl_socket.rb:55:in `connect'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/ssl_socket.rb:55:in `initialize'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/connection.rb:367:in `new'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/connection.rb:367:in `socket'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/connection.rb:105:in `request_call'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/middlewares/mock.rb:42:in `request_call'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/middlewares/instrumentor.rb:22:in `request_call'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/middlewares/base.rb:15:in `request_call'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/middlewares/base.rb:15:in `request_call'
C:/Users/Owner/.heroku/client/vendor/gems/excon-0.22.1/lib/excon/connection.rb:246:in …Run Code Online (Sandbox Code Playgroud) 我正在使用RestClient和Ruby v.2.2.1尝试使用内部测试API服务器.
这基本上是代码:
url = "https://10.10.0.10/thing/i/want/to/get"
header = {
:content_type => "application/json",
:"x-auth-token" => "testingtoken"
}
response = RestClient.get url, header
Run Code Online (Sandbox Code Playgroud)
这是我收到的失败消息:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (RestClient::SSLCertificateNotVerified)
Run Code Online (Sandbox Code Playgroud)
如果我正确阅读,看起来Ruby无法接受SSL安全证书.此调用适用于Chrome应用Postman,但为了使其正常工作,我必须点击Chrome本身的网址并接受连接不安全(但仍然继续),然后它将在邮递员中工作.
有没有办法忽略证书失败并继续在Ruby中继续?
我有一个与第三方网络服务集成的 Rails 应用程序。自最初开发以来,它多年来一直运行良好。由于某种意想不到的原因,它突然停止工作了。我想说我们还没有改变代码中的任何内容。唯一可以与之相关的是我们的 Letscrypt SSL 证书已过期并且我们更新了它。
\n事实是 I\xc2\xb4m 在调用 Web 服务请求时收到此错误:
\nE, [2022-02-17T19:53:25.385435 #32501] ERROR -- : SSL_connect returned=1 errno=0 state=error: certificate verify failed\nE, [2022-02-17T19:53:25.385876 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/httpi-2.4.4/lib/httpi/adapter/httpclient.rb:28:in `rescue in request\'\nE, [2022-02-17T19:53:25.386103 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/httpi-2.4.4/lib/httpi/adapter/httpclient.rb:24:in `request\'\nE, [2022-02-17T19:53:25.386358 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/httpi-2.4.4/lib/httpi.rb:161:in `request\'\nE, [2022-02-17T19:53:25.386658 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/httpi-2.4.4/lib/httpi.rb:127:in `get\'\nE, [2022-02-17T19:53:25.386909 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/wasabi-3.5.0/lib/wasabi/resolver.rb:43:in `load_from_remote\'\nE, [2022-02-17T19:53:25.387150 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/wasabi-3.5.0/lib/wasabi/resolver.rb:33:in `resolve\'\nE, [2022-02-17T19:53:25.387349 #32501] ERROR -- : /Users/Rober/.rvm/gems/ruby-2.4.9/gems/wasabi-3.5.0/lib/wasabi/document.rb:142:in `xml\'\nE, [2022-02-17T19:53:25.387606 #32501] ERROR …Run Code Online (Sandbox Code Playgroud) 启动我的服务器并转到localhost后,我收到错误:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
在这里尝试了解决方案:http://railsapps.github.com/openssl-certificate-verify-failed.html并且无法让OpenSSL更新(它在0.9.8e).我已经下载了多个OpenSSL软件包,但在我的开发环境中没有检测到任何软件包.
无法使用解决方案:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证因Windows操作系统而失败.
这里的解决方案也不适合我:如何在Windows上解决"证书验证失败"?
我应该采取哪些后续步骤?
我已经按照Twilio github页面上的示例代码进行操作,但它不起作用.在我的Rails控制台中,它看起来像这样:
irb(main):039:0> require 'twilio-ruby'
=> nil
irb(main):040:0* account_sid='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
=> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
irb(main):041:0> auth_token='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
=> "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
irb(main):042:0> client=Twilio::REST::Client.new account_sid, auth_token
=> <Twilio::REST::Client @account_sid=AC1322312300a752f6e84a8254535ecce5>
irb(main):043:0> client.account.sms.messages.create :from=>'16135551234', :to=>'16135551212', :body=>"Ada is fat"
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `connect'
from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `block in connect'
from C:/Ruby192/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
from C:/Ruby192/lib/ruby/1.9.1/timeout.rb:87:in `timeout'
from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:678:in `connect'
from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:626:in `start'
from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1168:in `request'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:214:in `connect_and_send'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/twilio-ruby-3.4.2/lib/twilio-ruby/rest/client.rb:138:in `block (2 levels) …Run Code Online (Sandbox Code Playgroud) ruby ×8
openssl ×5
ssl ×4
windows ×3
heroku ×2
omniauth ×2
rvm ×2
compass ×1
facebook ×1
lets-encrypt ×1
macos ×1
railscasts ×1
rest-client ×1
rubygems ×1
twilio ×1
ubuntu-14.04 ×1
windows-7 ×1