2013-11-24 63 views
0

我的代码:机械化与SSL通代理错误

require 'machanize' 

agent = Mechanize.new 
agent.user_agent = 'Mac Safari' 

page = agent.get 'https://github.com 

一切正常。但在这里我已经得到了,如果尝试使用代理

require 'machanize' 

agent = Mechanize.new 
agent.user_agent = 'Mac Safari' 
agent.set_proxy 'X.X.X.X', <port> 

page = agent.get 'https://github.com 

我有

OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A 

我还试图关闭证书验证,尝试不同的证书等。任何方式,这只是当我尝试使用代理服务器时才会出现的错误。有任何想法吗?

+0

如果它是一个中间人代理,那么这应该发生,你可能要禁用SSL验证 – pguardiario

+0

@pguardiario我已经解决问题THX –

回答

0

这是'openssl'程序中的问题。我在我的系统上安装了postgresql.app,它将PATH env自动更改为它。所以,同样的程序也来自poesgresql.app和openssl。纠正路径解决了问题,默认情况下使系统的openssl成为首选。