1

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

4

0 回答 0