机械化和红宝石间歇性SSL证书验证失败

时间:2012-10-02 18:33:48

标签: ruby-on-rails https openssl mechanize

我有一个Rails 3.2.8应用程序,在Ubuntu 12.04上使用Ruby 1.9.3。它使用mechanize连接到https网站。

我间歇地看到这个错误:

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控制台手动运行代码时,它工作正常。以上哪项(如果有的话)是正确的?我还可以做些什么来调试它?

0 个答案:

没有答案