我正在使用Authlogic-Connect进行第三方登录.运行适当的迁移后,Twitter/Google/yahoo登录似乎工作正常但Facebook登录引发异常:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
开发日志显示
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
app/controllers/users_controller.rb:37:in `update'
Run Code Online (Sandbox Code Playgroud)
请建议..
我正在尝试做Michael Hartl教程.当我尝试在我的gemset中安装rails 3.2.14时,我遇到以下问题:
$ gem install rails -v 3.2.14
错误:找不到有效的宝石'rails'(= 3.2.14),原因如下:
无法从https://rubygems.org/下载数据- SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz)
谷歌搜索后,我发现我可以使用非SSL源的rubygems,所以我运行:
sudo gem sources -a http://rubygems.org
Run Code Online (Sandbox Code Playgroud)
然后,当我再次尝试安装rails时,它成功了.但是,我仍然遇到上述问题,但作为警告:
警告:无法从" https://rubygems.org/ " 提取数据:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3 .rubygems.org/specs.4.8.gz)
如何完全删除此警告/错误?
我使用以下内容:
我已经按照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.我究竟做错了什么?
我在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?我的解决方案是解决这个问题的正确方法吗?
我在 Heroku 上托管了 Rails API 服务器,它向客户端初始 API 请求中指定的回调 url 发出异步 POST 请求。
当我尝试通过 SSL POST 到我的客户之一的 web 应用程序时遇到问题。
connection = Faraday::Connection.new('https://subdomain.some_client.com', ssl: { ca_file: '/usr/lib/ssl/certs/ca-certificates.crt' })
connection.get '/test'
Run Code Online (Sandbox Code Playgroud)
以下抛出错误:
Faraday::Error::ConnectionFailed: SSL_connect returned=1 errno=0 state=error: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
但是,如果我通过 HTTPS 发布到另一台服务器,例如谷歌,它工作正常
connection = Faraday::Connection.new('https://www.google.com', ssl: { ca_file: '/usr/lib/ssl/certs/ca-certificates.crt' })
connection.get '/'
Run Code Online (Sandbox Code Playgroud)
这是否意味着错误出在客户端的 SSL 配置上?如果是这样,我如何帮助他们调试问题?
更新:
我可以毫无问题地将 POST 卷曲到客户端的 web 应用程序,只有当我通过 ruby 的 HTTP 库执行它时才会失败
非常感谢谢谢
我很难获得SSL来验证证书.我完全不了解证书是如何运作的,所以这是一个重大的障碍.这是运行脚本时出现的错误:
c:/Ruby191/lib/ruby/1.9.1/net/http.rb:611:in `connect': SSL_connect returned=1 e
rrno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL
::SSL::SSLError)
Run Code Online (Sandbox Code Playgroud)
这是相关的代码:
client = Savon::Client.new order_svc
request = client.create_empty_cart { |soap, http|
http.auth.ssl.cert_file = 'mycert.crt'
http.auth.ssl.verify_mode = :none
http.read_timeout = 90
http.open_timeout = 90
http.headers = { "Content-Length" => "0", "Connection" => "Keep-Alive" }
soap.namespaces["xmlns:open"] = "http://schemas.datacontract.org/2004/07/Namespace"
soap.body = {
"wsdl:brand" => brand,
"wsdl:parnter" => [
{"open:catalogName" => catalogName, "open:partnerId" => partnerId }
] }.to_soap_xml
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我有一个在 Heroku 服务器上运行的 Rails 应用程序,但我无法通过 HTTPS 使用 Net::HTTP 与外部服务器进行通信。每当我尝试POST通过 HTTPS 访问外部专有 API时,我收到的错误是:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
我已经做了好几个小时的谷歌搜索,以寻找我遇到的问题的答案,但无济于事。这是我的环境:
“修复”我试过:
certifiedgem(实际上似乎有助于通过 Omniauth 和 Google 的 API 进行通信)Net::HTTP::Post.new而不是尝试运行时似乎完全忽略了调整Net::HTTP::Get.newssl_version="TLSv1_2"没有运气(它甚至一直报告相同的SSLv3相关错误)