通过Omniauth实现Facebook登录的SSL证书问题 - Windows机器

gee*_*ter 3 authentication openssl facebook ruby-on-rails omniauth

我面临的问题与此处描述的相同 - OmniAuth和Facebook:证书验证失败

投票最多的答案建议将以下内容添加到您的Omniauth初始值设定项中:

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}}}
end
Run Code Online (Sandbox Code Playgroud)

但他提到"/ etc/ssl/certs"是ubuntu的CA_PATH.Windows的相关CA_PATH是什么?

如果我的机器上没有证书,我该如何安装证书?我在哪里放置证书文件?

gee*_*ter 13

这就是我解决问题的方法 -

我下载了这个文件 - http://certifie.com/ca-bundle/ca-bundle.crt.txt并放入我的app/config文件夹.

我将该文件重命名为ca-bundle.crt

我更新了我的omniauth初始化程序以重新实现以下内容 -

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, :client_options => { :ssl => { :ca_file => "#{Rails.root}/config/ca-bundle.crt" } } 
end
Run Code Online (Sandbox Code Playgroud)

它奏效了.