2012-01-10 9 views
0

私のRubyスクリプトでMechanizeを使用すると、よく知られているSSLErrorを回避することはできません。 私はWindows 7とRailsInstallerを使用しています。MechanizeとSSLError in Ruby

ruby​​スクリプトでadcrun.chリンクを生成したいと思います。 そこで私はadcrun.chアカウントにログインする必要があります:私はこのコードを実行すると

require 'mechanize' 
a = Mechanize.new 
page = a.get("http://adcrun.ch") 
login_form = page.form_with(:action => "http://adcrun.ch/") 

login_form.usr_email = "[email protected]" 
login_form.usr_pass = "mypassword" 

page = a.submit(login_form, login_form.button_with(:value => "Login") 

は、今ではSSLError状態

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

私はhttp://curl.haxx.se/ca/cacert.pem から最新のCAファイルをも含まれていることを私に示してこの

a.ca_file "/RailsInstaller/cacert.pm" 

または

ような
a.agent.http.ca_file "/RailsInstaller/cacert.pm" 

しかし、どちらのソリューションも機能しませんでした。

誰かが私にヒントを与えることはできますか?

+0

あなたのコードをそのまま使用すると、私にとって効果的です。唯一の違いは私がLinux上にあることです。 1.8.7と1.9.3の両方で動作します。 URLはhttpsではなくhttpである可能性があります。 – Eugene

答えて

0

"http://adcrun.ch"の代わりに"https://adcrun.ch"を使用する必要があるようです。現在、非セキュアポートで安全な接続をしようとしているため、「無効な証明書」が返されており、OpenSSLは証明できません。

+0

ああ私のおばあさん!ありがとうございました! – Pr0

関連する問題