0

このエラーは、さまざまなタイミングでポップアップし続けます。それは絶対に腹立たしく、生産性を低下させます。

これはrvm ruby-1.9.3-p392Rails 3.2.13、 とPowです。

コンソールでは、次のコマンドが機能します。

response = Net::HTTP.start(url.host, url.port, :use_ssl => url.scheme == 'https') {|http| http.request(request)}

コントローラーからアクセスすると、まったく同じコマンドが次のエラーで失敗します。

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

エラーに関するSOに関する多数の投稿と回答を見てきました。多くの可動部分があり、証明書ファイルが非常に多くの異なる場所にあるため、使用される技術スタックは非常に脆弱であるため、多くの答えがあります。ただし、これが Rails コンソールでは機能するのに、Rails コントローラーからは機能しない理由を正確にはまだ理解していません。誰もこのようなものを見たことがありますか?

4

1 に答える 1

0

これがコントローラーではなくコンソールで機能した理由はまだ謎です。しかし、可動部分が非常に多かったため、元の rvm インストールを破棄して、最初からやり直すことにしました。

しばらくの間 Mac 環境を持っていた多くの人々は、過去に MacPorts を使用したことがあります。私のように、Homebrew に移行した人もいます。しかし、Homebrew では入手できず、MacPorts からしか入手できないライブラリがいくつかあるため、私は両方を維持しています。私は過去にそのような依存地獄に陥り、私より賢い人に頼る必要があるため、人間的に可能な限りソースからのビルドを避けようとしています。

この問題を解決するために私がしたことは、これまで行ったことのない Homebrew のみを使用するように rvm を設定することでした。

rvm autolibs homebrew

これには最初に Homebrew の更新が必要でした:

brew update

ただし、それを行う必要があるかどうか、または自動的に行う必要があるかどうかを教えてくれます。

それから私はしました:

rvm install 1.9.3

利用可能なバイナリがなかったため、これRuby 1.9.3-p429はソースからビルドされました。

いくつかの異なる場所 (MacPorts と Homebrew ホーム) に OpenSSL をインストールしたので、それが最初の問題の一部だった可能性があります。

インストールは滞りなく進みました。1.9.3 で元の gemset を再作成し、適切な.rvmrcファイルを作成しました。

これでSSL_connectエラーはなくなりました。

于 2013-06-09T14:53:33.530 に答える