首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OmniAuth和Facebook:证书验证失败

OmniAuth和Facebook:证书验证失败
EN

Stack Overflow用户
提问于 2010-10-20 19:33:30
回答 14查看 49.1K关注 0票数 66

我跟踪了Railscast #235,尝试设置最小的Facebook身份验证。

我首先设置了一个Twitter身份验证,就像Ryan自己做的那样。这一切工作得天衣无缝。

然后,我开始添加一个Facebook登录。但是,在授权应用程序后,重定向到/auth/facebook/callback失败,并显示以下消息:

代码语言:javascript
复制
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我正在使用localhost。我没有在应用程序中设置任何SSL。我做错了什么?

EN

回答 14

Stack Overflow用户

发布于 2011-04-30 14:01:35

我遇到了这个问题,并尝试使用:ca_path参数,但没有成功。在浏览了Github一段时间后,我遇到了一个建议,其中提到了使用:ca_file,并直接指向认证。

代码语言:javascript
复制
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'secret_key', 'secret_key',
   :client_options => {:ssl => {:ca_file => '/etc/pki/tls/certs/ca-bundle.crt'}}}
end

如果您需要获取系统认证文件(以及您使用的linux)的路径,只需从终端输入即可。这将为您提供一系列关于SSL设置的信息,包括路径(请参阅OPENSSLDIR)。您需要将certs/ca-bundle.crt添加到提供的路径中。

代码语言:javascript
复制
open-ssl version -a
票数 18
EN

Stack Overflow用户

发布于 2011-05-24 23:00:21

如果您要部署到Heroku,您希望指向特定的文件位置。这对我有效(在config/initializers/omniauth.rb中):

代码语言:javascript
复制
Rails.application.config.middleware.use OmniAuth::Builder do
  # This cert location is only for Heroku
  provider :facebook, APP_ID, APP_SECRET, {:client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
end
票数 6
EN

Stack Overflow用户

发布于 2011-06-28 20:49:08

我用CA包解决了这个问题,它来自:http://certifie.com/ca-bundle/

在我设计的初始化器中:

代码语言:javascript
复制
:client_options => { :ssl => { :ca_file => "#{Rails.root}/config/ca-bundle.crt" } } }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3977303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档