1

私はRails3.2.8アプリを持っており、Ubuntu12.04にRuby1.9.3があります。mechanizeを使用してhttpsWebサイトに接続します。

このエラーが断続的に発生しています。

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

CAファイルを設定します。

Mechanize.new do |agent|
  agent.ssl_version = "SSLv3"
  agent.ca_file = Rails.root.join("lib/cacert.pem").to_s
end

私も使ってみましたcert_store

cert_store = OpenSSL::X509::Store.new
cert_store.set_default_paths

Mechanize.new do |agent|
  agent.ssl_version = "SSLv3"
  agent.cert_store = cert_store
end

そして、ストアを明示的に設定します。

cert_store = OpenSSL::X509::Store.new
cert_store.add_file Rails.root.join("lib/cacert.pem").to_s

Mechanize.new do |agent|
  agent.ssl_version = "SSLv3"
  agent.cert_store = cert_store
end

これらのエラーは、CA /証明書を指定するために使用する方法に関係なく表示されます(デフォルトの動作に依存することを含む)。Railsコンソールから手動でコードを実行すると、正常に動作します。上記のどれが正しいですか?これをデバッグするために他に何ができますか?

4

0 に答える 0