私は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コンソールから手動でコードを実行すると、正常に動作します。上記のどれが正しいですか?これをデバッグするために他に何ができますか?