Ruby+Windows OpenSSLでエラーを吐く|||orz|||
nokogiri触ったついでに「Ruby スクレイピング」なんて調べると「mechanize」を使おうぜ!
って出てきたので触ってみることにした。
agent = Mechanize.new agent.get('https://xxxxx') do |page| puts page.title end
なんて実行すると、、、
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
とopenSSLのエラーを吐く。
RubyInstallerの証明書が古くてエラーという問題にも関連しているのかもしれないけれど、、、
対処法としては以下を参考にしてみた。
qiita.com
1. 下を右クリックで任意の場所に保存
http://curl.haxx.se/ca/cacert.pem
2. コントロールパネルで、システムから環境変数を設定
「SSL_CERT_FILE:任意のパス\cacert.pem」
とりあえず、これで使えるようにはなるんだけど、、、証明書関係ってまた微妙な部分だよね|||orz|||
「setx SSL_CERT_FILE=任意のパス\cacert.pem」をWindows10のコマンドプロンプトで実行するとシステムぬっこわれたんで、無難にコンパネから設定したほうが良い模様。
おかげで、システムの復元からしかもとに戻せないし、システムの復元で戻すとちょいと前の状態に戻って、
RailsのGemの整合性がぶっ壊れるエラー云々、bundleディレクトリ消して入れなおしたら直ったから良かったものの、
システム開発中にこんなこと起きると泣きそうになるよね。
ってことで、Windows10は怖いぞー