三流プログラマの雑記

プログラム、ゲーム、株、その他雑記など書いてます。

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は怖いぞー