SSL_connect 返された値 = 1 errno = 0 状態 = SSLv3 サーバー証明書の読み取り B: 証明書の検証に失敗しました 質問する

SSL_connect 返された値 = 1 errno = 0 状態 = SSLv3 サーバー証明書の読み取り B: 証明書の検証に失敗しました 質問する

使っていますAuthlogic-コネクトサードパーティのログインの場合。適切な移行を実行すると、Twitter/Google/Yahoo のログインは正常に機能するようです。ただし、Facebook のログインでは例外が発生します。

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

開発ログには

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'

提案してください..

ベストアンサー1

Rails 3のJQueryジェネレーターを使用しようとしたときにも同様の問題に遭遇しました。

私は次のように解決しました:

  1. CURL 証明機関 (CA) バンドルを取得します。これは次のように実行できます。

    • sudo port install curl-ca-bundle[MacPortsを使用している場合]
    • または直接下に引っ張るだけですwget http://curl.haxx.se/ca/cacert.pem
  2. SSL 証明書を検証しようとしている Ruby コードを実行します: SSL_CERT_FILE=/opt/local/etc/certs/cacert.pem rails generate jquery:install。この場合、これをサーバーが取得するどこかの環境変数として設定するか、ENV['SSL_CERT_FILE'] = /path/to/your/new/cacert.pemenvironment.rb ファイルに次のようなものを追加します。

CAファイルをOSにインストールすることもできます(私は試していませんが)。長い手順があります。ここ-- これも同じように動作するはずですが、個人的には試していません。

基本的に、発生している問題は、一部の Web サービスが OpenSSL が検証できない CA に対して署名された証明書で応答していることです。

おすすめ記事