使用Mechanize对象获取`证书验证失败(OpenSSL :: SSL :: SSLError)`错误 [英] Getting the `certificate verify failed (OpenSSL::SSL::SSLError)` erro with Mechanize object

查看:106
本文介绍了使用Mechanize对象获取`证书验证失败(OpenSSL :: SSL :: SSLError)`错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于以下代码,获取了certificate verify failed (OpenSSL::SSL::SSLError):

For the below code got certificate verify failed (OpenSSL::SSL::SSLError) :

代码

CODE

require 'mechanize'

agent = Mechanize.new

#{|a| a.ssl_version, a.verify_mode = 'SSLv3', OpenSSL::SSL::VERIFY_NONE}

agent.set_proxy('3.209.30.25', 80)
agent.ssl_version='SSLv3'
agent.verify_mode= OpenSSL::SSL::VERIFY_PEER

page = agent.get "https://gegsltraining.aravo.com/"

错误

Error

C:/Ruby193/lib/ruby/gems/1.9.1/gems/net-http-persistent-2.8/lib/net/http/persist
ent/ssl_reuse.rb:70:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 rea
d server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

EDIT

EDIT

我刚刚修改了代码,如下所示:

I just modified code as follows:

require 'mechanize'
agent = Mechanize.new
#{|a| a.ssl_version, a.verify_mode = 'SSLv3', OpenSSL::SSL::VERIFY_NONE}
agent.set_proxy('3.209.30.25', 80)
agent.ssl_version='SSLv3'
cert_store = OpenSSL::X509::Store.new
cert_store.add_file 'E:\WIPData\Ruby\Scripts\cacert.pem'
agent.cert_store = cert_store
agent.verify_mode= OpenSSL::SSL::VERIFY_PEER (tried OpenSSL::SSL::VERIFY_NONE none of them going good)

新错误

New Error

E:\WIPData\Ruby\Scripts>mechanizev1.rb
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2632:in `error!': 500 "Internal Server Err
or" (Net::HTTPFatalError)

如何成功进行认证验证?帮帮我.

How to be done that certification verification successfully? help me.

推荐答案

只需设置您的机械化代理对象.http.ca_file指向该文件.

Just set your mechanize agent object.http.ca_file to point to this file.

agent.agent.http.ca_file = '/etc/ssl/certs/curl-ca-bundle.crt'

否则,将curl-ca-bundle.crt保存在应用程序li​​b目录中 然后设置

Otherway to do this, is to save the curl-ca-bundle.crt in app lib directory and then set

agent.agent.http.ca_file = 'lib/curl-ca-bundle.crt'

这篇关于使用Mechanize对象获取`证书验证失败(OpenSSL :: SSL :: SSLError)`错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆