Omniauth Facebook Error - Faraday::Error::ConnectionFailed

后端 未结 9 1757
滥情空心
滥情空心 2020-11-28 20:31

(FYI: I\'m following the Twitter Omniauth from railscast #241. I used Twitter successfully, now going onto Facebook)

As soon as I logged into Facebook using Omniauth

相关标签:
9条回答
  • 2020-11-28 21:14

    this worked for me (on Mac OS X):

    $ brew install curl-ca-bundle
    $ export SSL_CERT_FILE=/usr/local/opt/curl-ca-bundle/share/ca-bundle.crt
    
    0 讨论(0)
  • 2020-11-28 21:15

    You are getting this error because Ruby cannot find a root certificate to trust.

    Fix for Windows: https://gist.github.com/867550

    Fix for Apple/Linux: http://martinottenwaelter.fr/2010/12/ruby19-and-the-ssl-error/ <--This site is now down.

    Here is the Apple/Linux fix according the site above:

    The solution is to install the curl-ca-bundle port which contains the same root certificates used by Firefox:

    sudo port install curl-ca-bundle
    

    and tell your https object to use it:

    https.ca_file = '/opt/local/share/curl/curl-ca-bundle.crt'
    

    Note that if you want your code to run on Ubuntu, you need to set the ca_path attribute instead, with the default certificates location /etc/ssl/certs.

    In the end, that’s what will work on both Mac OS X and Ubuntu:

    require 'net/https'
    https = Net::HTTP.new('encrypted.google.com', 443)
    https.use_ssl = true
    https.verify_mode = OpenSSL::SSL::VERIFY_PEER
    https.ca_path = '/etc/ssl/certs' if File.exists?('/etc/ssl/certs') # Ubuntu
    https.ca_file = '/opt/local/share/curl/curl-ca-bundle.crt' if File.exists('/opt/local/share/curl/curl-ca-bundle.crt') # Mac OS X
    https.request_get('/')
    
    0 讨论(0)
  • 2020-11-28 21:16

    Check out certified gem. Description:

    Ensure net/https uses OpenSSL::SSL::VERIFY_PEER to verify SSL certificates and provides certificate bundle in case OpenSSL cannot find one

    0 讨论(0)
提交回复
热议问题